Tengo dificultades para comprender JAAS. Todo parece más complicado de lo que debería ser (especialmente los tutoriales de Sun). Necesito un tutorial simple o un ejemplo sobre cómo implementar la seguridad (autenticación + autorización) en la aplicación java basada en Struts + Spring + Hibernate con un repositorio de usuario personalizado. Puede ser implementado usando ACEGI.JAAS para seres humanos
Respuesta
Éstos son algunos de los enlaces que se utiliza para ayudar a entender JAAS:
http://www.owasp.org/index.php/JAAS_Tomcat_Login_Module
http://www.javaworld.com/jw-09-2002/jw-0913-jaas.html
http://jaasbook.wordpress.com/
también echar un vistazo a los reinos Apache Tomcat configuración de cómo hacerlo:
gracias :) jaas book es realmente bueno – Makky
El linke for jaasbook está muerto. Ahora se ha movido a https://jaasbook.wordpress.com/ –
@Martlark, me gustaría hacer un apéndice, si es posible. Creo que [mi respuesta] (http://stackoverflow.com/a/43220700/3542189) puede ayudar a comprender su respuesta. Conceptualmente diciendo. – pss1suporte
Para obtener un tutorial puramente JAAS echa un vistazo a this. Es viejo pero debería ayudar con los principios básicos de JAAS.
No puedo hablar demasiado a sí JAAS, pero esto "suggested steps" guide en la primavera de Seguridad y the reference manual son ambos muy buenos recursos en la primavera de Seguridad - si su configuración es algo cercano a simple, que en realidad no Necesito hacer mucho más que leer esto.
La guía de "pasos sugeridos" se ha movido aquí: http://static.springsource.org/spring-security/site/start-here.html – aliopi
gracias, actualizó el enlace –
Otros usuarios han proporcionado enlaces muy útiles arriba, así que no me voy a molestar con enlaces. Hice una investigación similar en JAAS para la aplicación web y me encontré con un "obstáculo mental" hasta que finalmente me di cuenta de que JAAS es un marco que aborda la seguridad en una "capa" diferente a las aplicaciones web en Java World. Es una compilación para abordar problemas de seguridad en Java SE no Java EE.
JAAS es un marco de seguridad diseñado para asegurar cosas a un nivel mucho más bajo que la aplicación web. Algunos ejemplos de estas cosas son el código y los recursos disponibles en el nivel de JVM, por lo tanto, toda esta capacidad para establecer archivos de políticas en el nivel de JVM.
Sin embargo, como Java EE se basa en Java SE, algunos módulos de JAAS se reutilizaron en la seguridad de Java EE, como los LoginModules y Callbacks.
Tenga en cuenta que además de la seguridad Java EE, también hay seguridad Spring (anteriormente conocida como Acegi), que similar a la seguridad Java EE nativa aborda una "capa" mucho mayor en el problema de seguridad de la aplicación web. Es una implementación de seguridad independiente y no está construida sobre la seguridad estándar de Java EE, aunque se comporta de manera similar en muchos aspectos.
En resumen, a menos que esté buscando recursos seguros en el nivel Java SE (clases, recursos del sistema), no veo ningún uso real de JAAS que no sea el uso de la clase común y las interfaces. Solo concéntrese en utilizar Spring Security o la antigua y simple seguridad Java EE, que resuelven muchos problemas comunes de seguridad de las aplicaciones web.
Java EE 6 Tutorial asume la comprensión de los conceptos básicos de seguridad, por lo que una pequeña descripción de JAAS no hará daño. – jacktrades
¡La mejor explicación sobre JAAS! –
@isiu, me gustaría hacer un apéndice, si es posible. Creo que [mi respuesta] (http://stackoverflow.com/a/43220700/3542189) puede ayudar a comprender su respuesta. Conceptualmente diciendo. – pss1suporte
javax.security es una API demasiado complicada. Como resultado, hay implementadores no solo de LoginModules, sino de la API completa de autenticación y autorización, que crea la capa de abstracción anterior, como Authentication & Authorization managers.
Para empezar, es bueno imprimir this en su memoria.
En segundo lugar, en el más simple, configuración & go biblioteca para JAAS es Jboss PicketBox. Dice cómo hacer la autenticación y la autorización a través de JBossAuthenticationManager y JBossAuthorizationManager ... Fácilmente configurable a través de XML o Anotaciones. Puede usarlo para administrar aplicaciones webapps y aplicaciones independientes.
Si necesita la parte de autorización para administrar el acceso al repositorio, en términos de ACL para recursos, esto es lo que está buscando con certeza.
problema es con la seguridad, que por lo general se necesita para adaptarlo a sus necesidades, por lo que puede terminar de aplicación:
LoginModule - verifica nomUsuario + contraseña
CallbackHandler se utiliza como new LoginContext("Sample", new MyCallbackHandler());
CallbackHandler se pasa a los LoginModules subyacentes para que puedan comunicarse e interactuar con los usuarios, solicitando un nombre de usuario y contraseña a través de un usuario gráfico. cara, por ejemplo. Por lo tanto, dentro del controlador obtiene el nombre de usuario y la contraseña del usuario y se pasa al LoginModule.
LoginContext - entonces usted simplemente llama a lc.login(); y autenticar las credenciales. LoginContext se rellena con el Asunto autenticado.
Sin embargo, JBoss picketbox le brinda una forma muy fácil de hacerlo, a menos que necesite algo específico. respuesta
de lsiu es una de las pocas respuestas aquí que realmente "lo entienden";)
Agregando esa respuesta, una muy buena referencia sobre este tema es Whatever Happened to JAAS?.
Explica cómo JASPIC es el enlace en Java EE entre los modelos de seguridad Servlet y EJB y potencialmente un módulo de inicio de sesión JAAS, pero que en muchos casos el rol de JAAS se reduce a un proveedor de nombres y roles relativamente simple en Java EE.
Del mismo autor es JAAS in the Enterprise, que es un artículo anterior pero proporciona una gran cantidad de antecedentes históricos sobre por qué los modelos Java SE (JAAS) y Java EE divergieron de la forma en que lo hicieron.
En general, algunos tipos de JAAS se usan directamente en Java EE, básicamente Principal
, Subject
y CallbackHandler
. Los dos últimos son utilizados principalmente por JASPIC. Ya expliqué JASPIC en el artículo Implementing container authentication in Java EE with JASPIC.
- 1. JAAS Indicadores LoginModule
- 2. JAAS LoginModules adicionales
- 3. Configurando JAAS en Liferay Portal
- 4. toString(): para la depuración o para humanos?
- 5. Formatos de fecha legibles para humanos
- 6. Cron a cadena legible para humanos
- 7. 1 hora para factores humanos y usabilidad
- 8. Acceso contexto de primavera de jaas LoginModule
- 9. ¿Cuál es el objetivo de JAAS
- 10. Convirtiendo CMTime a tiempo legible para humanos en Object-C
- 11. Usando Html.LabelPara visualizar una etiqueta legible para humanos?
- 12. llvm ir a lenguaje de origen legible para los humanos?
- 13. Biblioteca C# para analizar períodos de tiempo legibles por humanos
- 14. ¿Cómo convertir xsd a documentación legible para humanos?
- 15. NSKeyedArchiver escribir XML (u otra legible para humanos)?
- 16. Convirtiendo la fecha amigable para los humanos en milisegundos
- 17. "Spring Security" y "Java Authentication and Authorization Service (jaas)"
- 18. Uso de credenciales privadas y públicas en JAAS
- 19. C++ IP Address forma legible por humanos
- 20. Representaciones legibles en humanos en protobuf-net
- 21. PLCrashReporter: Creando una stacktrace legible por humanos
- 22. Salida XML legible por humanos de Scala?
- 23. Intervalo de tiempo legible por humanos automático
- 24. Db2 formateador de error legible por humanos
- 25. Traducción de idiomas humanos en Python
- 26. Login un usuario mediante programación a través de JAAS
- 27. URL legibles por humanos: preferiblemente jerárquicas también?
- 28. CronExpressions: ¿alguna biblioteca que exista para generarlas/convertirlas a una forma legible para humanos?
- 29. ¿Existen normas y prácticas básicas para crear un código legible para humanos?
- 30. ¿Qué es un buen paquete para Representación fonética para varios idiomas humanos?
Awesome question. Gran título conciso para una falla de documentación legítima. –
Las mejores preguntas y respuestas sobre JAAS. Lo he estado pasando muy mal tratando de comenzar con eso. – cristiandley
@mattb, me gustaría hacer un apéndice, si es posible. Creo que [mi respuesta] (http://stackoverflow.com/a/43220700/3542189) puede ayudar a comprender su pregunta. Conceptualmente diciendo. – pss1suporte