package cn.teammodel.security.handler; import cn.hutool.json.JSONUtil; import cn.teammodel.common.ErrorCode; import cn.teammodel.common.R; import org.springframework.http.HttpStatus; import org.springframework.security.access.AccessDeniedException; import org.springframework.security.web.access.AccessDeniedHandler; import org.springframework.stereotype.Component; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @Component public class RestAccessDeniedHandler implements AccessDeniedHandler { @Override public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException accessDeniedException) throws IOException, ServletException { response.setStatus(HttpStatus.UNAUTHORIZED.value()); response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Cache-Control","no-cache"); response.setCharacterEncoding("UTF-8"); response.setContentType("application/json"); response.getWriter().println(errorMsg()); response.getWriter().flush(); } public Object errorMsg() { return JSONUtil.parse(R.error(ErrorCode.NO_AUTH_ERROR)); } }