package com.monkeylessey.framework.security.handler.exception; import com.fasterxml.jackson.databind.ObjectMapper; import com.monkeylessey.response.ResponseData; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; 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 29443 * @date 2022/4/16 */ @Component public class AccessHandler implements AccessDeniedHandler { @Override public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException accessDeniedException) throws IOException, ServletException { ResponseData result = ResponseData.error("权限不足", HttpStatus.FORBIDDEN.value()); String s = new ObjectMapper().writeValueAsString(result); response.setCharacterEncoding("utf-8"); response.getWriter().print(s); response.setStatus(HttpStatus.FORBIDDEN.value()); response.setContentType(MediaType.APPLICATION_JSON_VALUE); } }