// // ошибки в процессе логина не ловятся ControllerAdvice, поэтому на клиента поедет страничка с кодом // 404 // ну а нам нужен JSON - вот и сделаем JSON // public class Resp401BasicAuthenticationEntryPoint extends BasicAuthenticationEntryPoint { LoggerWrapper LOG = LoggerWrapper.get(Resp401BasicAuthenticationEntryPoint.class); @Override public void commence( HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException { // if( authException instanceof InsufficientAuthenticationException) { // return; // } response.addHeader("Access-Control-Allow-Origin", "null"); response.addHeader("WWW-Authenticate", "Basic realm=\"" + getRealmName() + "\""); response.addHeader("Content-Type", "application/json"); response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); PrintWriter writer = response.getWriter(); ObjectMapper mapper = new ObjectMapper(); ErrorInfo errorInfo = new ErrorInfo(HttpServletResponse.SC_UNAUTHORIZED, authException.getLocalizedMessage()); String jsonError = mapper.writeValueAsString(errorInfo); writer.println(jsonError); LOG.info("result = " + jsonError); } }
private void performLogging(String message) { // TODO LoggerWrapper.get().errorLog("GeneralCustomException: " + message); }