Esta división ha sido probado por nuestros especialistas así se asegura la veracidad de nuestro contenido.
Solución:
El AuthenticationManager
es realmente solo un contenedor para proveedores de autenticación, que les brinda una interfaz coherente a todos ellos. En más casos, el defecto AuthenticationManager
es más que suficiente.
Cuando usted llama
.authenticate(new UsernamePasswordAuthenticationToken(username, password))`
está pasando el UsernamePasswordAuthenticationToken
al valor predeterminado AuthenticationProvider
, que utilizará el userDetailsService
para obtener el usuario según el nombre de usuario y comparar la contraseña de ese usuario con la del token de autenticación.
En general, el AuthenticationManager
pasa una especie de AuthenticationToken
a cada uno de ellos AuthenticationProviders
y cada uno de ellos lo inspecciona y, si pueden usarlo para autenticarse, regresan con una indicación de “Autenticado”, “No autenticado” o “No se pudo autenticar” (lo que indica que el proveedor no sabía cómo manejar el token, por lo que pasó procesándolo)
Este es el mecanismo que le permite conectar otros esquemas de autenticación, como autenticarse contra un servidor LDAP o Active Directory, u OpenID, y es uno de los principales puntos de extensión dentro del marco de Spring Security.
Spring Security envía solo uno real AuthenticationManager
implementación:
org.springframework.security.authentication.ProviderManager
Esto usa diferentes AuthenticationProvider
para las tareas de autenticación
El AuthenticationManagerBeanDefinitionParser
es responsable de analizar
su documento de Java dice:
Registra el ProviderManager central utilizado por la configuración del espacio de nombres y permite la configuración de un alias, lo que permite a los usuarios hacer referencia a él en sus beans y ver claramente de dónde proviene el nombre.
Crea el ProviderManager
y agrega lo especificado proporciona. Si no se especifica ningún provide en el xml, entonces agrega un NullAuthenticationProvider
. Este es al menos un proveedor que hace notar que prevenir excepciones de configuración.
De Spring Security Docs:
La implementación predeterminada en Spring Security se llama ProviderManager y en lugar de manejar la solicitud de autenticación en sí, delega en una lista de configurados Proveedor de autenticacións, cada uno de los cuales se consulta a su vez para ver si puede realizar la autenticación. Cada proveedor lanzará una excepción o devolverá un Autenticación objeto.
Información sobre ProviderManager también se puede encontrar en Topical Guide – Spring Security Architecture:
La implementación más utilizada de AuthenticationManager es
ProviderManager, que delega a una cadena de Proveedor de autenticación
instancias. Un Proveedor de autenticación es un poco como un
AuthenticationManager pero tiene un método adicional para permitir a la persona que llama consultar si admite un determinado Autenticación escribe…
Puntuaciones y reseñas
Puedes corroborar nuestro ensayo ejecutando un comentario y puntuándolo te damos la bienvenida.