欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

SpringSecurityrequest过滤问题示例小结,

来源: javaer 分享于  点击 17418 次 点评:94

SpringSecurityrequest过滤问题示例小结,


在进行请求时发现问题,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过滤内容请搜索3672js教程以前的文章或继续浏览下面的相关文章希望大家以后多多支持3672js教程!

您可能感兴趣的文章:
  • Spring Security中使用authorizeRequests遇到的问题小结
  • springSecurity之如何添加自定义过滤器
  • Spring Security CsrfFilter过滤器用法实例
  • SpringSecurity学习之自定义过滤器的实现代码
  • Spring Security常用过滤器实例解析
相关栏目:

用户点评