stylefeng 框架怎么获取当前用户登录的id
时间: 2023-07-15 09:15:23 浏览: 145
在使用 Spring Boot + Spring Security 的情况下,可以通过 SecurityContextHolder 获取当前用户的认证信息,包括用户名、密码、角色等信息。其中,可以通过 SecurityContextHolder.getContext().getAuthentication().getPrincipal() 方法获取当前用户的 Principal 对象,进而获取用户的相关信息,如 id、username 等。示例代码如下:
```java
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UserDetails;
public class UserController {
public Long getCurrentUserId() {
Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
if (principal instanceof UserDetails) {
return ((UserDetails)principal).getId();
}
return null;
}
}
```
假设你的 User 实体类中有一个 id 属性,可以通过强制转换 UserDetails 对象并调用其 getId() 方法来获取当前用户的 id。注意,如果当前用户未登录,则 principal 对象为字符串 "anonymousUser",需要根据实际情况进行处理。
阅读全文