2010-07-28 9 views
5

Estoy programando una aplicación web con Java EE, JSF e Hibernate. ¡No uso Spring o EJB! Ahora estoy en el punto donde implementar autenticación y autorización. Necesito acceder a un Directorio Activo o LDAP. Y quiero implementar mis propios roles, que no se recuperan de AD/LDAP.Authentication and Authorization Framework para Java Web-Application

Mi pregunta es: ¿Cuál es la forma más fácil de implementar eso? ¿Debería usar un framework como JAAS/Apache Shiro? ¿Y cuál es el mejor para mis intereses?

Acerca del concepto de rol pequeño: planeé configurar un archivo de propiedades, donde puedo configurar los roles. Tengo solo unos pocos papeles, ¿entonces un gran concepto no es necesario?

Estoy muy contento de cualquier recomendación o sugerencia.

Respuesta

14

Definitivamente no es cierto que "la primavera de Seguridad es la única más versátil auth/auth proveedor hay "- eso es solo exageración infundada.

Apache Shiro puede manejar más casos de uso que Spring Security, aunque solo sea porque SS no es compatible con la gestión de sesiones de la empresa o tiene una criptografía simplificada de fábrica (Shiro lo hace). Shiro también es compatible con un modelo de seguridad de grano mucho más preciso de fábrica (por ejemplo, la WildcardPermission de Shiro). Shiro también hace LDAP y Active Directory. También tenga en cuenta que Shiro se construyó desde el primer día con fundamentos arquitectónicos para trabajar en cualquier entorno de aplicaciones, no solo en las aplicaciones de Spring (sin embargo, es excelente en las aplicaciones de Spring). No se puede decir lo mismo de Spring Security (de hecho, se construyó inicialmente solo para aplicaciones Spring).

En cuanto a un pequeño número de usuarios y/o roles, puede hacerlo fácilmente en el shiro.ini file. Por ejemplo:

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

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

Al final del día, tanto Apache Shiro y Seguridad primavera son grandes marcos - ambos están bien en sus propios méritos. Su elección debe basarse en la que uno se adapte a su modelo mental mejor (que las interfaces y los nombres de las clases tienen más sentido? ¿Qué es más fácil de entender y usar?)

Cheers,

Les

+1

Como mencioné mucho: Shiro es realmente fácil, pero debes averiguarlo por tu cuenta, a menos que algunas personas escriban algunos tutoriales y no quiero ver tutoriales de bruce phillips. Son más confusos que ayudar. Espero que alguien haga esto para que Shiro pueda volverse más popular ... – Sven

2

Ya sea que use el contenedor de resorte para su aplicación o no (debe :-)), Spring Security es el proveedor de auth/auth más versátil que existe. Aquí está a brief overview of what it can do.

(Puede utilizar la seguridad de la primavera, incluso si no se utiliza la primavera para el resto de su aplicación)

+1

Sólo para ser explícito: ¿Se puede autenticar a un usuario contra Active Directory desde una caja que no sea de Windows? –

+1

SpringSecurity hace LDAP. Aunque no sé sobre Active Directory. –

3

estudié un poco y me gusta Apache Shiro. El problema que tengo no hay buenos tutoriales o howto de ...

He aquí un pequeño ejemplo de lo fácil Shiro funciona: link