Spring Security 获取登入用户
时间: 2023-07-25 18:32:18 浏览: 120
SpringSecutiry实现认证授权功能,整合SpringBoot
要获取当前登录用户的信息,可以使用 Spring Security 提供的 SecurityContextHolder 类和 Authentication 接口。
以下是获取登录用户信息的代码示例:
```
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
String username = authentication.getName();
```
其中,`authentication.getName()` 方法可以获取当前登录用户的用户名。如果需要获取更多用户信息,可以将 `authentication` 强制转换为 UserDetails 类型,然后获取更多信息。
```
UserDetails userDetails = (UserDetails) authentication.getPrincipal();
String username = userDetails.getUsername();
String password = userDetails.getPassword();
```
需要注意的是,以上代码只适用于已经登录的用户。如果用户没有登录,则 `SecurityContextHolder.getContext().getAuthentication()` 方法将返回 null。因此,在使用这些方法时要进行判断,以避免 NullPointerException 异常的发生。
阅读全文