最初の一
方法:拡張パックを使用してユーザー情報を取得する
使い方
1.まず、ThymeleafとSpringSecurityの拡張機能の依存関係を紹介します。
私のSpringBootバージョンは2.2.6.RELEASE
SpringSecurityのデフォルトバージョンな5.2.2.RELEASE
ので、拡張依存パッケージの5バージョンを選択しました
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-springsecurity5</artifactId>
</dependency>
自分の状況に応じて4つの拡張依存パッケージを選択することもできます:thymeleaf-extras-springsecurity4
2.次に、Thymeleafページに関連する制約を導入します。
<html lang="en" xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity5"><!-- Thymeleaf提供的Spring Security标签支持 -->
3.使用
登录名:<span sec:authentication="name"></span>
角色:<span sec:authentication="principal.authorities"></span>
用户名:<span sec:authentication="principal.username"></span>
密码:<span sec:authentication="principal.password"></span>
もちろん他の方法もあります(ささやくbb
最初の二
方法:セッションを使用してユーザー情報を取得する
以前は、Spring Securityがカスタムメソッドなしで成功ページに直接ジャンプしたと思っていたため、メソッドでユーザー情報を取得できず
、Serviceでメソッドを呼び出してユーザーにクエリを実行しているので、Serviceクラスにある必要があることを突然思い出しましたセッションでユーザー情報を保存し、ページのセッションで情報を取得します
コード:
@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);
...(省略)
}
...(省略)
}
}
フロントで入手してください:
用户名:<span th:text="${session.USER_INFO.username}"></span>