今天使用Spring security获取当前用户信息时发现拿不到 Principal值为空并且报异常
前面我通过Spring Security的全局上下文设置 UsernamePasswordAuthenticationToken usernamePasswordAuthenticationToken= new UsernamePasswordAuthenticationToken(userDetails,null,userDetails.getAuthorities());
//加入全局上下文
SecurityContextHolder.getContext().setAuthentication(usernamePasswordAuthenticationToken);
后面我才知道是配置除了问题
这里http配置的authorizeRequests() .antMatchers(“xxx”) .permitAll()**不会绕开springsecurity的过滤器验证
-
而web.ignoring是直接绕开security的所有filter,直接跳过验证。这里的登录地址不能放到web.ignoring()里面去这会导致sercurity不知道你已经登录了(去看过滤器源码),而http.permitAll()不会有影响
这算找到问题算在了
详细请到江南一点雨中的这边文章https://blog.csdn.net/dnc8371/article/details/106702093阅读
版权声明:本文为qq_39054053原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。