Область применения переменных SparkJava
Я занимаюсь разработкой приложения SparkJava (не Apache Spark), и я хотел бы разделить объект между фильтром до и после маршрута. Фильтр и маршрут определены в разных классах. Я не хочу продолжать сеансы, потому что это мобильное приложение json api, и, теоретически, оно должно быть бесплатным. Область видимости переменной должна быть от начала обработки запроса до конца.
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 "";
});
Возможно, в будущем приложению потребуется масштабирование, так что имейте в виду, что может быть несколько узлов, на которых это работает.