Deux façons de mettre en œuvre le projet SpringBoot pour obtenir des informations sur l'utilisateur actuel de Spring Security dans Thymeleaf

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.RELEASEla 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>

Publié 184 articles originaux · vanté 6 · 680 000 vues

Je suppose que tu aimes

Origine blog.csdn.net/Piconjo/article/details/105443573
conseillé
Classement