Spring Security的自定义403的方式

心已赠人 2022-12-30 10:54 106阅读 0赞

有两种方法
1、自定义页面
在继承WebSecurityConfigurerAdapter的配置类中重写的configure方法中,加上下面

  1. //自定义403权限不足的页面
  2. http.exceptionHandling().accessDeniedPage("/page/403.html");

2、自定义返回值,多用于前后端分离
新建一个类,实现AccessDeniedHandler 接口,并注入到容器中

  1. @Component
  2. public class MyAccessDenied implements AccessDeniedHandler {
  3. @Override
  4. public void handle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, AccessDeniedException e) throws IOException, ServletException {
  5. //设置响应状态码
  6. httpServletResponse.setStatus(HttpServletResponse.SC_FORBIDDEN);
  7. //设置响应数据格式
  8. httpServletResponse.setContentType("application/json;charset=utf-8");
  9. //输入响应内容
  10. PrintWriter writer = httpServletResponse.getWriter();
  11. String json="{\"status\":\"403\",\"msg\":\"拒绝访问\"}";
  12. writer.write(json);
  13. writer.flush();
  14. }
  15. }

然后在继承WebSecurityConfigurerAdapter的配置类中就可以@Autowired这个注入的类

  1. //自定义403权限不足的返回值
  2. http.exceptionHandling().accessDeniedHandler(myAccessDenied);

发表评论

表情:
评论列表 (有 0 条评论,106人围观)

还没有评论,来说两句吧...

相关阅读