konto usunięte

Temat: Mapowanie ról - Glassfish

Mam aplikację, w której używam deklaratywnego określania bezpieczeństwa komponentów EJB na poziomie całych klas jak i poszczególnych metod (@RolesAllowed, itd.)
Autoryzacja odbywa się poprzez jdbcRealm, a mapowanie grup zawartych w bazie danych zawarte jest w pliku sun-application.xml:

<sun-application>
<security-role-mapping>
<role-name>GUEST</role-name>
<principal-name>GUEST</principal-name>
</security-role-mapping>
<security-role-mapping>
<role-name>ADMIN</role-name>
<group-name>ADMIN</group-name>
</security-role-mapping>
<security-role-mapping>
<role-name>PATIENT</role-name>
<group-name>PATIENT</group-name>
</security-role-mapping>
<security-role-mapping>
<role-name>DOCTOR</role-name>
<group-name>DOCTOR</group-name>
</security-role-mapping>
<security-role-mapping>
<role-name>REGISTRAR</role-name>
<group-name>REGISTRAR</group-name>
</security-role-mapping>
</sun-application>

4 role (ADMIN, DOCTOR, PATIENT, REGISTRAR) są mapowane na grupy o odpowiednich (takich samych) nazwach z bazy danych, natomiast rola GUEST jest mapowana na użytkownika GUEST - chodzi tutaj o to, że ma być to domyślna rola dla wszystkich nieautoryzowanych użytkowników aplikacji. Użytkownika GUEST mam zdefiniowanego na serwerze jako domyślnego, gdy nie podano żadnego innego, tzn nie nastąpiło "zalogowanie się".
Wynika z tego (teoretycznie), że użytkownik o nazwie (principal) GUEST powinien należeć do roli GUEST. Tak więc mam komponent EJB przeznaczony dla tej roli, dla którego określiłem @RolesAllowed("GUEST") na poziomie całej klasy i gdy próbuję wywołać metodę tego komponentu dostaje piękny wyjątek AccessLocalException, co oznacza, że użytkownik GUEST nie należy jednak do roli GUEST. Sprawdzam zatem czy faktycznię wywołuję tą metodę jako GUEST - wynik pozytywny, użytkownik wywołujący to GUEST! więc wychodzi na to, że mapowanie jest złe :[. Próbuję zatem wykonać mapowanie w plikach sun-web.xml albo sun-ejb-jar.xml, lecz niestety sytuacja nadal pozostaje bez zmian.

Czy ktoś z Was miał może podobny problem i mógłby mi podpowiedzieć jak sobie z tym poradził? ...chciałem to także rozwiązać, w taki sposób, aby użytkownik bez grupy (GUEST) był przydzielany do jakiejś domyślnej grupy, lecz nie znalazłem nigdzie sposobu na to, jak tego dokonać, tzn określić domyślną grupę...

Będę wdzięczny za wszelką pomoc

Temat: Mapowanie ról - Glassfish

Cześć,
miałem dziś podobny problem. Niestety wniosek był dość przykry "użytkownik domyślny" nie jest automatycznie logowany. Oznacza to, że ręcznie musisz go zalogować. Działa zasada "wszytko albo nic". Podobnie jak w przypadku @WebMethod czy konstruktorów - definicja choć jednego wymaga dalszej jawnej definicji reszty.

konto usunięte

Temat: Mapowanie ról - Glassfish

no właśnie...w końcu wyszło na to, że dla metod/komponentów dostępnych dla użytkownika niezalogowanego trzeba będzie użyć @PermitAll i ewentualne ograniczenia wprowadzić w implementacji

Następna dyskusja:

hosting glassfish, jboss- c...




Wyślij zaproszenie do