SpringSecurity从哪里获取当前用户的基本信息
时间: 2023-06-23 21:08:42 浏览: 116
Spring Security 从 `Authentication` 对象中获取当前用户的基本信息。`Authentication` 对象代表了当前用户的身份验证信息,包括用户的认证主体、用户的授权角色、以及其他的相关信息。在 Spring Security 中,`Authentication` 对象通常通过 `SecurityContextHolder` 来获取。例如,我们可以通过以下代码来获取当前用户的 `Authentication` 对象:
```java
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
```
通过 `Authentication` 对象,我们可以获取当前用户的用户名、密码、角色等信息,例如:
```java
String username = authentication.getName(); // 获取用户名
String password = authentication.getCredentials().toString(); // 获取密码
List<GrantedAuthority> authorities = (List<GrantedAuthority>) authentication.getAuthorities(); // 获取用户所拥有的角色
```
需要注意的是,`Authentication` 对象中的信息可能会因为不同的身份验证方式而有所不同。例如,如果是使用基于表单的身份验证方式,那么 `Authentication` 对象中可能会包含用户的 IP 地址、SESSION ID 等信息。因此,我们需要根据具体的身份验证方式来获取对应的用户信息。
阅读全文