package com.common.security.configure; import com.alibaba.fastjson.JSONObject; import com.common.core.beans.Result; import com.common.core.enums.ResultCodeEnum; import com.common.core.exception.BizException; 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; /** * @author 廖振钦 * @date 2022-01-17 */ @Component public class RestfulAccessDeniedHandler implements AccessDeniedHandler { @Override public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException e) throws IOException, ServletException { response.setCharacterEncoding("UTF-8"); response.setContentType("application/json"); response.addHeader("Content-Security-Policy","default-src 'self'"); response.addHeader("Strict-Transport-Security","max-age=31536000; includeSubdomains"); response.addHeader("Referrer-Policy","no-referrer-when-downgrade"); response.addHeader("X-Permitted-Cross-Domain-Policies","all"); response.addHeader("X-Download-Options","noopen"); Result res=Result.respErr(ResultCodeEnum.RT_ACCESS_DENIED); response.getWriter().println(JSONObject.toJSONString(res)); response.getWriter().flush(); } }