Uwierzytelnianie w aplikacji internetowej

0

Witam.

Chciałbym zrobić aplikację internetową i nie wiem zbytnio jak zabrać się za uwierzytelnianie. Myślałem o użyciu apache shiro. Logowanie przez stronę internetową wygląda fajnie. Są tutoriale i połączenie z jsf to nie problem. Ale chciałbym też zrobić kliena androida i komunikować się przez RESTful web services. Czy da się to jakoś połączyć żebym za każdym razem nie musiał wysyłać użytkownika i hasła z usługą? Np. uwierzyelniam raz, mam jakiś numer sesji i z kolejnymi wywoływaniami usługi przesyłać tylko jego, a z poziomu aplikacji nie musiałbym sięgać do bazy za każdym razem żeby zobaczyć uprawnienia?

0

Logowanie:

  • wysyłasz Login+hasło
  • otrzymujesz token albo błąd jak niepoprawne

Żądanie:

  • wysyłasz parametry + token
  • otrzymujesz wyniki + nowy token

na serwerze w sesji trzymasz informacje z jakim tokenem powinno przyjść kolejne żądanie.

0

Zakładam że ten zmienny token jest po to aby nikt nie podsłuchał rozmowy? Jeżeli chciałbym aby komunikacja odbywała się przez https to chyba nie jest to konieczne?
Druga sprawa to że właśnie problem jest w tym jak tworzyć sesję w web service. W managed beans mam dostęp do takowej i mogę skonfigurować shiro aby współpracował z serwletami, ale co w przypadku webservice?

1

http://weblogs.java.net/blog/ramapulavarthi/archive/2006/06/maintaining_ses.html JAX-WS. Względnie jeżeli WS jest RESTowy powinno się dać dobrać bezpośrednio z poziomu ws do sesji tak jak w zwykłym serwlecie.

1

W Restlecie da się na pewno wyciągnąć sesję bo oparty jest na servlecie i sam to robiłem. Inna sprawa to to, że to naruszenie bezstanowości architektury REST :)

0

Rozwiązanie jest proste.

@Context
HttpServletRequest request;

A REST jest wgł. mnie przereklamowany. Appkę piszę dla siebie więc stawiam na szybkość.

Dziękuję za pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1