| package com.mzl.flower.config; | 
|   | 
| import com.fasterxml.jackson.databind.ObjectMapper; | 
| import com.mzl.flower.base.ReturnDataDTO; | 
| import lombok.AllArgsConstructor; | 
| import lombok.extern.slf4j.Slf4j; | 
| import org.springframework.http.HttpStatus; | 
| import org.springframework.security.core.AuthenticationException; | 
| import org.springframework.security.web.AuthenticationEntryPoint; | 
| import org.springframework.stereotype.Component; | 
|   | 
| import javax.servlet.ServletException; | 
| import javax.servlet.http.HttpServletRequest; | 
| import javax.servlet.http.HttpServletResponse; | 
| import java.io.IOException; | 
| import java.io.PrintWriter; | 
|   | 
|   | 
| @Slf4j | 
| @Component | 
| @AllArgsConstructor | 
| public class ResourceAuthExceptionEntryPoint implements AuthenticationEntryPoint { | 
|   | 
|     private final ObjectMapper objectMapper; | 
|   | 
|     @Override | 
|     public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException e) throws IOException, ServletException { | 
|         response.setCharacterEncoding("UTF-8"); | 
|         response.setContentType("application/json; charset=utf-8"); | 
|         response.setStatus(HttpStatus.UNAUTHORIZED.value()); | 
|         PrintWriter printWriter = response.getWriter(); | 
|         ReturnDataDTO resultDTO = new ReturnDataDTO<>(String.valueOf(HttpStatus.UNAUTHORIZED.value()), null, e.getMessage()); | 
|         printWriter.append(objectMapper.writeValueAsString(resultDTO)); | 
|     } | 
| } |