La première 一
méthode: utiliser le pack d'extension pour obtenir des informations utilisateur
Comment utiliser
1. Présentez d'abord les dépendances d'extension de Thymeleaf et SpringSecurity:
Ma version SpringBoot est 2.2.6.RELEASE
la version par défaut de SpringSecurity, 5.2.2.RELEASE
j'ai donc choisi la version 5 du package de dépendance d'extension
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-springsecurity5</artifactId>
</dependency>
Vous pouvez également choisir le package de dépendance à 4 extensions en fonction de votre propre situation: thymeleaf-extras-springsecurity4
2. Introduisez ensuite les contraintes pertinentes sur la page Thymeleaf:
<html lang="en" xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity5"><!-- Thymeleaf提供的Spring Security标签支持 -->
3. Utilisation
登录名:<span sec:authentication="name"></span>
角色:<span sec:authentication="principal.authorities"></span>
用户名:<span sec:authentication="principal.username"></span>
密码:<span sec:authentication="principal.password"></span>
Bien sûr, il existe d'autres façons (chuchoter bb
La première 二
méthode: utiliser Session pour obtenir des informations utilisateur
Parce que je pensais que Spring Security est directement passé à la page de réussite sans méthode personnalisée. Il est impossible d'obtenir des informations sur l'utilisateur dans la méthode,
puis je me suis soudain souvenu que puisque j'appelais la méthode dans le service pour interroger l'utilisateur, elle devrait être disponible dans la classe Service. Enregistrez les informations utilisateur dans la session, puis récupérez les informations dans la session sur la page
Code:
@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);
...(省略)
}
...(省略)
}
}
Obtenez à la réception:
用户名:<span th:text="${session.USER_INFO.username}"></span>