spring boot 2 security 403 无权限自定义返

公司项目Springboot2 + security REST 风格接口,权限不足时, 返回security 自带 403 状码:

{
   "timestamp": "2018-09-19T07:02:17.979+0000",
   "status": 403,
   "error": "Forbidden",
   "message": "Forbidden",
   "path": "/admin/test"
}

该格式不符合公司接口规范;
需要修改为:

{
    "code": 403,
    "message": "FORBIDDEN",
    "timestamp": 1537340969670
}

添加自定义处理器:

public class RestAuthenticationAccessDeniedHandler implements AccessDeniedHandler {
    @Override
    public void handle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, AccessDeniedException e) throws IOException, ServletException {
        httpServletResponse.setStatus(HttpServletResponse.SC_FORBIDDEN);

        PrintWriter writer = httpServletResponse.getWriter();
        writer.println("403");
    }
}

注入bean:

@Bean
public AccessDeniedHandler getAccessDeniedHandler() {
    return new RestAuthenticationAccessDeniedHandler();
}

修改 WebSecurityConfig 类configure 方法内的:

    httpSecurity.exceptionHandling().accessDeniedHandler(getAccessDeniedHandler());

注:

WebSecurityConfig 继承自 WebSecurityConfigurerAdapter
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容