Estoy tratando de averiguar cómo funcionan los indicadores del módulo de inicio de sesión en JAAS (usando JBoss 5.1 EAP) y he encontrado una situación desconcertante que espero que alguien pueda aclarar para mí.JAAS Indicadores LoginModule
Para el fondo, mi login-config.xml se parece a esto:
<authentication-policy>
<authentication>
<login-module code="...loginModule1" flag="sufficient">
...
</login-module>
<login-module code="...loginModule2" flag="optional">
...
</login-module>
<login-module code="...loginModule3" flag="optional">
...
</login-module>
</authentication>
</authentication-policy>
En este caso, loginModule1 es independiente, pero depende de loginModule2 loginModule3. El problema que tengo es que si loginModule1 falla y loginModule2 y loginModule3 tienen éxito, sigo teniendo un inicio de sesión fallido. Si cambio loginModule1 para que sea opcional, cuando loginModule1 falla y 2 y 3 tienen éxito, obtengo un inicio de sesión exitoso.
A partir de la documentación de seguridad de JBoss (http://docs.jboss.org/jbossas/admindevel326/html/ch8.chapter.html):
sufficient: the LoginModule is not required to succeed. If it does succeed,
control immediately returns to the application (authentication does not proceed
down the LoginModule list). If it fails, authentication continues down the
LoginModule list.
, habría pensado en base a esto que cuando el El LoginModule con un indicador suficiente falla, pero un siguiente LoginModule pasa, entonces obtendría un inicio de sesión exitoso. ¿Alguien sabe por qué este no es el caso?
Terminé dividiendo los dos casos de uso en dos dominios de seguridad en lugar de utilizar la funcionalidad de conmutación por error. Una pena, sin embargo. – bwobbones