Spring Security. Chociaż jest oznaczony jako Wiosna, you might find it useful for web applications; zwróć uwagę, że nie musisz pisać aplikacji Spring, aby korzystać z Spring Security.
Jeśli chcesz trzymać się JAAS, proponuję użyć jednego z modułów logowania kontenera, aby rozpocząć, zanim spróbujesz napisać swój własny moduł logowania. Należy uprzedzić, że może się to skończyć, jeśli dostarczone moduły nie spełniają Państwa wymagań. I jest dobry book on JAAS, który pomoże ci go zrozumieć w szczegółach.
Co więcej, spójrz na Servlet spec 3.0, aby zobaczyć, w jaki sposób można stosować adnotacje, zadeklaruj role (@DeclareRoles, które pojawiły się w aplecie 2.5) w samym aplecie, zanim zdecydujesz, które role mają dostęp do jakiej metody HTTP (używając @RolesAllowed). Możesz także stosować adnotacje takie jak @DenyAll i @PermitAll, aby zezwolić lub zabronić dostępu wszystkim użytkownikom. @TransportProtected zapewni dostęp do metody HTTP przez HTTPS. Wszystko, co trzeba zrobić, to zmapować te role w kodzie źródłowym, na rzeczywiste role w sferze JAAS; często odbywa się to przy użyciu pliku deskryptora określonego dla kontenera.
DODATEK
Ponieważ używasz JSP, a nie Facelets ani żadnych innych technologii dla warstwy prezentacji, może być zainteresowany w JSP tags offered by Spring Security. O wiele czystsze jest utrzymywanie wszystkich metadanych autoryzacji w ogromnym pliku web.xml.
Jeśli chodzi o JPA, cóż, podstawowy dostęp do nich jest zwykle egzekwowany w serwletach lub EJB. Oczywiście możesz zbudować więcej programowego bezpieczeństwa, w zależności od twoich potrzeb - używanie detektorów podmiotu pomogłoby w tym procesie, ponieważ byłbyś w stanie przechwytywać obciążenia, aktualizować i utrzymywać operacje (jeśli jesteś tym szczególnym, ale w większości budujesz zabezpieczenia przed uruchomieniem logiki biznesowej zwykle wystarczają).
I och, spójrz na JBoss Seam (i bezpieczeństwo Seam), ponieważ jest to kompletne środowisko programistyczne oparte na Java EE.
Zastanawiasz się, dlaczego wszyscy uważają, że JAAS może być używany bezpośrednio w Java EE bez wspominania o JASPIC? Zobacz http://java.sys-con.com/node/1002315 –