dependencia spring-security spring-security-kerberos

spring-security - dependencia - spring security web



Combina un filtro de autenticación personalizado con spring-security-kerberos (1)

Esta respuesta te ayudará con la autenticación Kerberos opcional

Y si necesita más personalización, amplía KerberosAuthenticationProvider por su clase MyCustomAuthenticationProvider y lo pega al atributo de clase:

<bean id="kerberosAuthenticationProvider" class="com.test.MyCustomAuthenticationProvider"> <property name="kerberosClient"> <bean class="org.springframework.security.extensions.kerberos.SunJaasKerberosClient"> <property name="debug" value="${krb.debug}"/> </bean> </property> <property name="userDetailsService" ref="dummyUserDetailsService"/> </bean>

Estoy usando spring-security-kerberos para autenticar a los usuarios remotos, esto funciona bien. El problema que tengo es que a veces los usuarios no tienen el boleto kerberos en su lugar y necesito usar otra forma de autenticación. He escrito mi propio proveedor de autenticación ( myCusomAuthenticationProvider ) para este propósito. Este proveedor personalizado debe solicitar al usuario la autenticación BASIC y utiliza varios servidores LDAP para autenticar al usuario en función del nombre de usuario y la contraseña.

El problema que veo es que mi administrador de autenticación personalizado siempre obtiene KerberosServiceRequestToken como el token de autenticación y no logro obtener UsernamePasswordAuthenticationToken. ¿Cómo puedo hacer que el servidor devuelva los métodos "Negotiate" y "Basic" al navegador y que mi proveedor maneje la autenticación básica?

He encontrado una manera de hacerlo con algunos ajustes al código de primavera-seguridad-kerberos, pero estoy tratando de encontrar una mejor manera de hacerlo.

web.xml: http://pastebin.com/embed.php?i=ZidnBMwZ

root-context-with-krb.xml: http://pastebin.com/c8vfUZfV