spring security 无法获取当前登录信息

security配置文件中将访问url过滤掉了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Security中,你可以使用`SecurityContextHolder`类的`getContext()`方法来获取当前的`SecurityContext`对象。通过`SecurityContext`对象,你可以进一步获取当前用户的认证信息。 以下是获取登录信息的示例代码: ```java Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); if (authentication != null && authentication.isAuthenticated()) { Object principal = authentication.getPrincipal(); if (principal instanceof UserDetails) { UserDetails userDetails = (UserDetails) principal; // 获取用户的用户名 String username = userDetails.getUsername(); // 获取用户的权限(角色) Collection<? extends GrantedAuthority> authorities = userDetails.getAuthorities(); // 其他操作... } } ``` 在上面的代码中,首先通过`SecurityContextHolder.getContext().getAuthentication()`获取当前的`Authentication`对象。然后,你可以检查`authentication`是否为非空并且已经通过身份验证。 如果通过身份验证,你可以通过`authentication.getPrincipal()`获取到用户的主体对象。在大多数情况下,主体对象将是一个实现了`UserDetails`接口的类,它包含了用户的详细信息,如用户名、密码、权限等。 你可以根据需要对`principal`进行类型转换,并使用相应的方法来获取用户的用户名、权限等信息。 需要注意的是,在未经身份验证时,`authentication`可能为`null`或包含一个特殊的未经身份验证的实现类,具体取决于你的配置和登录状态。因此,在使用时需要进行适当的判断和处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值