Я разрабатываю приложение SparkJava (не Apache Spark), и я хотел бы поделиться объектом между фильтром before и post route. Фильтр и маршрут определяются в разных классах. Я не хочу заниматься сессиями, потому что это мобильное приложение json api, и теоретически это должно быть бесплатно. Область переменных должна начинаться с начала обработки запроса до конца.SparkJava Variables Scope
before(Main.API_PROTECTED + "/*", (req, res) -> {
String token = req.headers("Authorization");
if (token == null | "".equals(token)) {
halt(401, "You're not welcome.");
} else {
Partner partner = new PartnerDAO().getPartnerByToken(token.replace("Bearer ", ""));
if (partner == null) {
halt(401, "You're not welcome.");
}
}
});
Там в выше перед фильтром, из которого я хотел бы поделиться объектом партнера с почтовым маршрутом ниже:
post(Main.API_PROTECTED + "/vendors",
(req, res) -> {
// Do stuff to insert Vendors in the Database, verifying access control using the partner object
return "";
});
Может быть, в будущем, приложению нужно будет масштабировать, так имейте в виду, что это может быть несколько узлов.