SpringSecurity request过滤问题示例小结
在进行请求时发现问题,security配置中添加了可免授权访问资源请求api,但是还是无法访问
@RestController("user") public class UserController { @Autowired UserService userService; @PostMapping("/register") public ResultVO userRegister(@RequestBody @Valid UserFirstRegisterVO userFirstRegisterVO) { return userService.userRegister(userFirstRegisterVO); } @PostMapping("/collect") public ResultVO userInfoCollect(@RequestBody @Valid UserSecondRegisterVO userSecondRegisterVO) { return userInfoCollect(userSecondRegisterVO); } }
这里写的就有问题,好久没搞,bean命名还以为是路径映射了,请求的就是/user/register,然后在security中把这个请求路径给免授权了,结果访问的时候就被未授权处理器抛出了未授权的信息,看的我一头雾水.
/** * @author Vermouth * @ClassName: 未认证, 未授权访问处理器 * @Description: 当用户未通过认证访问受保护的资源时处理 * @date: 2023-12-11 16:47 * @version: V1.0 */ @Component public class EntryPointUnauthorizedHandler implements AuthenticationEntryPoint { @Override public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException { ResponseUtils.result(response, new ResultVO(ResultStatus.RESULT_UNAUTHENTICATED_ACCESS.getRspMsg(), ResultStatus.RESULT_UNAUTHENTICATED_ACCESS.getRspCode(), null)); } }
然后跟着一步步调试,发现在DispatcherServlet 处理请求时并没找到handler,同时modeAndView也为null然后进入报错,被SecurityContext中的处理器给捕获然后从这抛出了异常。
更正后代码:
@RestController @RequestMapping("/user") public class UserController { @Autowired UserService userService; @PostMapping("/register") public ResultVO userRegister(@RequestBody @Valid UserFirstRegisterVO userFirstRegisterVO) { return userService.userRegister(userFirstRegisterVO); } @PostMapping("/collect") public ResultVO userInfoCollect(@RequestBody @Valid UserSecondRegisterVO userSecondRegisterVO) { return userInfoCollect(userSecondRegisterVO); } }
使用RequestMapping来添加映射,不知道有没有更加好用的方式。
到此这篇关于SpringSecurity request过滤问题示例小结的文章就介绍到这了,更多相关SpringSecurity request过滤内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
一文搞懂SpringBoot如何利用@Async实现异步调用
异步调用几乎是处理高并发,解决性能问题常用的手段,如何开启异步调用?SpringBoot中提供了非常简单的方式,就是一个注解@Async。今天我们重新认识一下@Async,以及注意事项2022-09-09Java Swing CardLayout卡片布局的实现示例
这篇文章主要介绍了Java Swing CardLayout卡片布局的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-12-12
最新评论