2010-08-05 16 views
6

Który z nich jest najlepszym podejściem/metodą implementacji zabezpieczeń w Java EE? (JPA/JSPs)Java EE Security - Jaką metodę zastosować?

Pracuję nad osobistym projektem, dzięki czemu mogę uczyć się Java EE i jestem nieco zdezorientowany, jak się do tego podejść proces AUTORYZACJI i AUTORYZACJI na mojej stronie internetowej.

Mam różne role i nie chcę, aby niektórzy użytkownicy mieli dostęp do niektórych części witryny. Szukałem więc dokumentacji i samouczków itp., Ale wszystko, co znajduję, datuje się na ponad 3-4 lata temu. Czy jest coś jeszcze nowszego, na co powinienem się przyjrzeć?

Oto niektóre z rzeczy, znalazłem:

http://www.oracle.com/technetwork/developer-tools/jdev/oc4j-jaas-login-module-083975.html

Każda pomoc będzie bardzo mile widziane !!! :)

Odpowiedz

1

Pracowałem ostatnio nad aplikacją Java EE z JAAS. To całkiem aktualne, możesz sprawdzić, czy to jest home page at Oracle.

Współpracuje z rolami, uwierzytelnianie itp

Można go używać w JBoss i Glassfish, prawdopodobnie resztę ass zbyt.

+0

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 –

1

Coś nowszego od JAAS to framework Spring Security. Obsługuje JSR-350 (EJB 3), dzięki czemu działałby dobrze w Java EE.

+0

Odkrywam Spring i nigdy nie przestaje mnie zadziwić. Ok, teraz muszę przeczytać o Spring Security ... –

3

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.

+0

Dziękuję wszystkim! Na pewno to sprawdzę ... :) – Johan

0

Poradnik bezpieczeństwa wiosennego . Wysoce polecany.