El primer 一
método: use el paquete de expansión para obtener información del usuario
Como usar
1. Primero introduzca las dependencias de extensión de Thymeleaf y SpringSecurity:
Mi versión SpringBoot es 2.2.6.RELEASE
la versión predeterminada de SpringSecurity, 5.2.2.RELEASE
así que elegí la versión 5 del paquete de dependencia de extensión
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-springsecurity5</artifactId>
</dependency>
También puede elegir el paquete de dependencia de 4 extensiones según su propia situación: thymeleaf-extras-springsecurity4
2. Luego, introduzca restricciones relevantes en la página Thymeleaf:
<html lang="en" xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity5"><!-- Thymeleaf提供的Spring Security标签支持 -->
3. Uso
登录名:<span sec:authentication="name"></span>
角色:<span sec:authentication="principal.authorities"></span>
用户名:<span sec:authentication="principal.username"></span>
密码:<span sec:authentication="principal.password"></span>
Por supuesto que hay otras formas (susurrando bb
El primer 二
método: usar Session para obtener información del usuario
Como solía pensar que Spring Security saltó directamente a la página de éxito sin un método personalizado. Es imposible obtener información del usuario en el método,
y de repente recordé que ya que estaba llamando al método en el Servicio para consultar al usuario, debería estar disponible en la clase de Servicio. Guarde la información del usuario en la sesión y luego obtenga la información de la sesión en la página
Código:
@Service
public class UserServiceImpl implements UserService{
@Autowired
private UserRepository userRepository;
@Autowired
HttpSession session;
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
User user = userRepository.findByUsername(username);
if (user!=null)
{
session.setAttribute("USER_INFO",user);
...(省略)
}
...(省略)
}
}
Ve a la recepción:
用户名:<span th:text="${session.USER_INFO.username}"></span>