Artur Świerc

Artur Świerc Programista PHP/Java

Temat: SpringMVC - autoryzacja przy użyciu sesji

Witam.

Panowie, uczę się Springa więc proszę o wyrozumiałość ;)

Chciałbym zrobić logowanie użytkowników, mechanizm oparty na sesjach. Prosta rzecz, jednak tutaj mam problemy.

Wpadłem na pomysł, że wszystko przelatuje przez DelegatingFilterProxy i w filtrze sprawdzam sesje użytkownika. Jeżeli nie ma sesji to przekierowuje do /login.do - jednak tutaj powstaje zapętlenie, można powiedzieć że filtr wykonuje mi się rekurencyjnie ;) Musiałbym sprawdzić, jeżeli żądanie poszło do /login.do to nie wykonuj metody sendRedirect.

Coś mi się wydaję, że kombinuję jak koń pod górkę, dlatego chciałbym się zapytać, czy istnieje jakieś prostsze rozwiązanie?
Szukałem sporo na google, jednakże wszystkie wyniki sprowadzały się do Acegi - czy zatem jest to jedyne słuszne rozwiązanie?

konto usunięte

Temat: SpringMVC - autoryzacja przy użyciu sesji

Artur Świerc:
Witam.

Panowie, uczę się Springa więc proszę o wyrozumiałość ;)

Chciałbym zrobić logowanie użytkowników, mechanizm oparty na sesjach. Prosta rzecz, jednak tutaj mam problemy.

Wpadłem na pomysł, że wszystko przelatuje przez DelegatingFilterProxy i w filtrze sprawdzam sesje użytkownika. Jeżeli nie ma sesji to przekierowuje do /login.do - jednak tutaj powstaje zapętlenie, można powiedzieć że filtr wykonuje mi się rekurencyjnie ;) Musiałbym sprawdzić, jeżeli żądanie poszło do /login.do to nie wykonuj metody sendRedirect.

Coś mi się wydaję, że kombinuję jak koń pod górkę, dlatego chciałbym się zapytać, czy istnieje jakieś prostsze rozwiązanie?

Prościej by było gdybyś adresu login.do po prostu nie mapował na ten filtr. Czy to jest najlepsze rozwiązanie to już nie wiem.

pzdr
Artur Świerc

Artur Świerc Programista PHP/Java

Temat: SpringMVC - autoryzacja przy użyciu sesji

Ahh... no tak! Najprostrze rozwiązanie, że o tym nie pomyślałem :)
Wielkie dzięki!

konto usunięte

Temat: SpringMVC - autoryzacja przy użyciu sesji

Acegi to bardzo dobre rozwiązanie. Nawet jeśli nie potrzebujesz w chwili obecnej (bo faktycznie funkcjonalność, której oczekujesz jest dość skromna) to IMHO warto przy okazji się nauczyć.

Jeśli natomiast chodzi o opcję z filtrem to przychodzi mi jeszcze do głowy dość eleganckie rozwiązanie z użyciem adnotacji na kontrolerach. Zakładasz wtedy, że każdy kontroler wymaga uwierzytelnionego użytkownika poza tymi ozdobionymi adnotacją np. @NotSecured. Dorzucasz sobie wtedy interceptora, który sprawdza czy handler posiada adnotację, a jeśli nie - robisz przekierowanie.

A najszybciej to tak jak napisał Paweł :) .
Artur Świerc

Artur Świerc Programista PHP/Java

Temat: SpringMVC - autoryzacja przy użyciu sesji

Dzięki Michał, myślałem też o rozwiązaniu bazującym na interceptorze. Myślę, że i tak warto to sprawidzić, żeby się więcej nauczyc :)

konto usunięte

Temat: SpringMVC - autoryzacja przy użyciu sesji

No można sprawdzić ale raczej większego sensu to niema. Używając SpringSecurity (dawne acegi) osiągniesz to co chcesz w dosłownie kilka minut.
A do sprawdzenia filtrów przechwytujących będzie jeszcze okazja.
Przemysław Wardowski

Przemysław Wardowski Technology driven HR
solutions / CTO w IT
Systems sp. z o.o.

Temat: SpringMVC - autoryzacja przy użyciu sesji

Amen.
SpringSecurity zawstydzi nawet Turbo-Dymo-Mana.
Darek Zoń:
No można sprawdzić ale raczej większego sensu to niema. Używając SpringSecurity (dawne acegi) osiągniesz to co chcesz w dosłownie kilka minut.
A do sprawdzenia filtrów przechwytujących będzie jeszcze okazja.

Następna dyskusja:

Autoryzacja przy korzystani...




Wyślij zaproszenie do