Spring Security--自定义403处理方案

    自定义 403 处理方案

      使用 Spring Security 时经常会看见 403(无权限),默认情况下显示的效果如下:
Spring Security--自定义403处理方案_第1张图片      而在实际项目中可能都是一个异步请求,显示上述效果对于用户 就不是特别友好了。Spring Security 支持自定义权限受限。

   1 新建类实现 AccessDeniedHandler

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

    }
}

   2 修改配置类

      配置类中重点添加异常处理器。设置访问受限后交给哪个对象进行处理。
Spring Security--自定义403处理方案_第2张图片

 http.exceptionHandling().accessDeniedHandler(myAccessDenied);

你可能感兴趣的:(Java,SpringSecurity)