如何从SecurityContextHolder里获取用户id
时间: 2024-05-10 10:17:55
浏览: 14
您可以使用以下代码从Sec[uri](https://geek.csdn.net/educolumn/00029aadd70cd24e60e5a206bbad5f06?spm=1055.2569.3001.10083)tyContextHolder中获取当前用户的id:
Object principal = Sec[uri](https://geek.csdn.net/educolumn/00029aadd70cd24e60e5a206bbad5f06?spm=1055.2569.3001.10083)tyContextHolder.getContext().getAuthentication().getPrincipal();
[string](https://geek.csdn.net/edu/8802d631b97a4a6af1f4d0bbf8527465?dp_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6NDQ0MDg2MiwiZXhwIjoxNzA3MzcxOTM4LCJpYXQiOjE3MDY3NjcxMzgsInVzZXJuYW1lIjoid2VpeGluXzY4NjQ1NjQ1In0.RrTYEnMNYPC7AQdoij4SBb0kKEgHoyvF-bZOG2eGQvc&spm=1055.2569.3001.10083) userId;
if (principal instanceof UserDetails) {
userId = ((UserDetails) principal).getUsername();
} else {
userId = principal.to[string](https://geek.csdn.net/edu/8802d631b97a4a6af1f4d0bbf8527465?dp_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6NDQ0MDg2MiwiZXhwIjoxNzA3MzcxOTM4LCJpYXQiOjE3MDY3NjcxMzgsInVzZXJuYW1lIjoid2VpeGluXzY4NjQ1NjQ1In0.RrTYEnMNYPC7AQdoij4SBb0kKEgHoyvF-bZOG2eGQvc&spm=1055.2569.3001.10083)();
这里假设您的用户id是通过UserDetails[对象](https://geek.csdn.net/educolumn/04c51611e4b730957464192e0307b82c?spm=1055.2569.3001.10083)的getUsername()方法获取的。如果您的UserDetails实现类中没有这个方法,您需要根据具体的实现类进行相应的修改。
相关问题
java获取当前登录用户id
在Java中,获取当前登录用户id的方法可能因所用的框架或应用程序而异。以下是一些可能的方法:
1. 使用Spring Security框架获取当前用户id:
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
String currentUserId = authentication.getName();
```
springboot获取当前用户id
要获取当前用户的ID,可以使用Spring Security提供的SecurityContextHolder类。以下是获取当前用户ID的示例代码:
```