Buduję aplikację przy użyciu App Engine z Jersey. Chciałbym skorzystać z adnotacji @RolesAllowed(Role_user)
, która pozwala utworzyć filtr w żądaniu.Jak zdobyć obiekt sesji w ContainerRequest do używania adnotacji @RolesAllowed (Role_user)?
Problem polega na tym, że musimy skonfigurować klasę SecurityContextFilter
.
Moim celem jest pobranie id
użytkownika przechowywanego w sesji, aby następnie sprawdzić jego rolę bezpośrednio w function : public ContainerRequest filter(ContainerRequest request)
mojej klasy .
Potrzebuję wstrzyknąć HttpRequest
, aby uzyskać sesję, ale po wstrzyknięciu otrzymuję wyjątek Java.lang.Null
.
Chcę uzyskać obiekt sesji w klasie ContainerRequest
.
Jak mogę to zrobić?
EDIT:
muszę znaleźć rozwiązanie tego problemu, ale nie wiem, czy to jest czysty: Można wstrzyknąć HttpRequest bezpośrednio w funkcji: isUserInRole (_role) więc używam tego i dostaję mój userId przez sesję, następnie dostaję rolę użytkownika i sprawdzam, czy pasuje do _role i zwraca true lub false.
Myślę, że mam ten sam problem .. Próbujesz wstrzyknąć HttpRequest z @Context private HttpServletRequest httpRequest; .. dobrze? Próbowałem w ten sposób i httpRequest ma wartość zerową wewnątrz filtru –
Tak! Dokładnie to próbuję zrobić! Ale nadal nie mam odpowiedzi. Jeśli masz rozwiązanie tego problemu, możesz mi powiedzieć, proszę. – FlavienBert
nope .. Jeszcze nic nie znalazłem ... –