2010-07-28 13 views
5

Programuję aplikację internetową przy użyciu Java EE, JSF i Hibernate. Nie używam Springa ani EJB! Teraz jestem w punkcie, w którym można wdrożyć uwierzytelnianie i autoryzację. Potrzebuję dostępu do Active Directory lub LDAP. Chcę zaimplementować własne role, które nie są pobierane z AD/LDAP.Podstawy uwierzytelniania i autoryzacji dla aplikacji WWW Java

Moje pytanie brzmi: Jaki jest najłatwiejszy sposób realizacji? Czy powinienem używać frameworków takich jak JAAS/Apache Shiro? A który z nich jest najlepszy dla moich intencji?

O małej koncepcji roli: planowałem skonfigurować plik właściwości, w którym mogę skonfigurować role. Mam tylko kilka ról, więc wielka koncepcja nie jest taka potrzebna ?!

Jestem bardzo zadowolony z wszelkich zaleceń lub sugestii.

Odpowiedz

14

To na pewno nie jest prawdą, że „Wiosna Bezpieczeństwo jest jednym z najbardziej wszechstronny auth/auth dostawca jest "- to po prostu bezpodstawny szum.

Apache Shiro może obsługiwać więcej przypadków użycia niż Spring Security, choćby dlatego, że SS nie obsługuje zarządzania sesjami w przedsiębiorstwie lub ma uproszczoną kryptografię po wyjęciu z pudełka (robi to Shiro). Shiro obsługuje także znacznie dokładniejszy model bezpieczeństwa po wyjęciu z pudełka (np. Shiro's WildcardPermission). Shiro robi także LDAP i Active Directory. Zauważ też, że Shiro zostało zbudowane od samego początku z podstawami architektonicznymi do pracy w dowolnym środowisku aplikacji, nie tylko Spring (ale na pewno sprawdza się w aplikacjach Spring). Tego samego nie można powiedzieć o Spring Security (był on pierwotnie zbudowany tylko dla aplikacji Spring).

Jeśli chodzi o niewielką liczbę użytkowników i/lub ról, można to łatwo zrobić w telefonie shiro.ini file. Na przykład:

[main] 
... 
[users] 
jsmith = password, role1 
ajones = anotherPassword, role1, role2 

[roles] 
role1 = perm1, perm2, ..., permN 
role2 = permA, permB, ..., permZ 

Pod koniec dnia, zarówno Apache Shiro i wiosna są wielkie ramy bezpieczeństwa - zarówno dobrze stanąć na własnych zasług. Twój wybór powinien być oparty na których jeden pasuje do Twojego modelu psychicznego lepiej (które interfejsy i klasy więcej sensu? Które jest łatwiejsze do zrozumienia i zastosowania?)

Wiwaty,

Les

+1

Tak jak wspominałem wiele: Shiro jest naprawdę łatwy, ale musisz sam się o tym dowiedzieć, chyba że niektórzy ludzie zamierzają napisać kilka tutoriali i nie chcę widzieć tutoriali Bruce'a Phillipsa, które są bardziej mylące niż pomaganie. Mam nadzieję, że ktoś zrobi to, aby Shiro mogło stać się bardziej popularne ... – Sven

2

Niezależnie od tego, czy używasz pojemnika sprężynowego do swojej aplikacji, czy nie (powinieneś :-)), Spring Security jest najbardziej wszechstronnym dostawcą auth/auth. Oto a brief overview of what it can do.

(można użyć bezpieczeństwa sprężynowy nawet jeśli nie używać sprężynę do końca swojej aplikacji)

+1

Wystarczy be explicit: czy może uwierzytelnić użytkownika w Active Directory z pudełka innego niż Windows? –

+1

SpringSecurity robi LDAP. Nie wiem jednak o Active Directory. –

3

Uczyłem się trochę i lubię Apache Shiro. Mam problem nie ma dobrych tutoriali czy HOWTO ...

Oto mały przykład jak łatwo Shiro działa: link

Powiązane problemy