Codzienne archiwa: 10 marca 2011

Zapamiętywanie i walidacja danych w formularzu logowania GWT + JAAS

Widząc rosnące zainteresowanie tematyką bezpieczeństwa w GWT, postanowiłem jak najszybciej dostarczyć Ci kolejną przydatną dawkę informacji. Pamiętasz pewnie wpis o uwierzytelnianiu i autoryzacji w GWT – powstał wtedy mały projekt pokazujący, w jaki sposób połączyć aplikację napisaną w GWT z autoryzacją poprzez mechanizm Javy, a dokładniej użyliśmy JAAS (Java Authentication and Authorization Service). Tamten projekt miał jednak pewne wady, m. in. brak walidacji danych na formularzu logowania oraz nie obsługiwał zapamiętywania tych danych przez przeglądarkę. Pierwszy problem wynikał z użycia przycisku „submit”, który automatycznie wysyłał formularz, nie było więc momentu na sprawdzenie poprawności wysyłanych danych. Natomiast drugi problem jest bardziej złożony i związany z naturą samego GWT. W poszukiwaniu rozwiązania będziemy więc kontynuowali rozpoczęty wcześniej projekt.

Przeszukałem najpierw zasoby internetu, aby sprawdzić, czy występują już jakieś znane rozwiązania wyżej wymienionych problemów. Praktycznie wszystkie przykłady implementacji formularza logowania używają GWT RPC do przesyłania danych, więc nie było w czym przebierać. Jeśli zaś chodzi o zapamiętywanie danych logowania, problemem jest brak bezpośredniej możliwości skorzystania z mechanizmów przeglądarki, bo do tego potrzebny jest formularz wraz z polami loginu i hasła oraz przyciskiem „submit”, który musi znajdować się bezpośrednio w pliku html, a żaden z jego elementów nie może być wstrzykiwany javascript’em. Wszystkie moduły GWT są wstrzykiwane javascript’em w treść strony, dlatego przeglądarka nawet nie proponuje możliwości zapamiętania danych. Czytaj więcej »