Implementé Spring Security en mi aplicación. He utilizado la implementación predeterminada, es decir, la he configurado con mis propios parámetros (DataSource, Secured Areas, etc.), pero no he escrito ninguna implementación personalizada.Obtenga más información del usuario - Spring Security
Ahora quiero capturar más datos del usuario, es decir, en la misma tabla que el nombre de usuario y la contraseña, como el nombre de la empresa, identificación, etc. Sin embargo, no quiero utilizar esta información para iniciar sesión.
No estoy seguro de cómo hacerlo. Por lo que he leído, está relacionado con UserDetailsService. Sin embargo, parece que sería necesario escribir un CustomDetailsService personalizado si quería utilizar esta información durante el inicio de sesión, y eso no es lo que quiero. Solo quiero usar esta información dentro de la aplicación, después de que el usuario haya iniciado sesión.
¿Está realmente relacionado con UserDetailsServer? ¿Es este el único archivo que tengo que modificar?
Todos los ejemplos que encontré de UserDetailsService medida solo utilizan nombre de usuario y contraseña, por lo que no pueden entender que los nuevos datos vendrían.
Gracias!
'loadUserByUsername' vuelve DetallesUsuario, pero en el código, devuelve' buildUserFromAccount' que devuelve un usuario. Entonces, ¿cómo CustomUserDetails está involucrado en el código? La clase Account DAO y todos sus métodos deberían ser implementados por mí, ¿correcto? –
Tuve un pequeño error tipográfico y lo arreglé. Para seguir explicando: 'UserDetails' es la interfaz,' User' es una implementación de valores de primavera que incluye todos los campos básicos. Si desea agregar sus propios campos, lo más fácil es extender 'User'. Todavía puede devolver un objeto 'User' en ese método o un objeto' UserDetails' o un objeto 'CustomUserDetails' ya que spring security solo espera un objeto que implemente' UserDetails'. – Pete
¡Ah, vale! Así que al usar esto, estoy proporcionando todo lo que Spring Security necesita para autenticarse. Sin embargo, el objeto User que contiene tiene todos mis campos personalizados. Entonces, ¿cómo obtengo este objeto, así que puedo 'getCompany' por ejemplo? –