1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- package com.keao.edu.common.security;
- import com.keao.edu.common.constant.CommonConstants;
- import com.keao.edu.common.entity.HttpResponseResult;
- import org.apache.commons.lang3.exception.ExceptionUtils;
- import org.codehaus.jackson.map.ObjectMapper;
- import org.springframework.http.MediaType;
- import org.springframework.security.authentication.InsufficientAuthenticationException;
- import org.springframework.security.core.AuthenticationException;
- import org.springframework.security.oauth2.common.exceptions.InvalidTokenException;
- 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;
- @Component
- public class BaseAuthenticationEntryPoint implements AuthenticationEntryPoint {
- @Override
- public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException {
- response.setCharacterEncoding(CommonConstants.UTF8);
- response.setContentType(MediaType.APPLICATION_JSON_UTF8_VALUE);
- response.setStatus(HttpServletResponse.SC_OK);
- PrintWriter printWriter = response.getWriter();
- Throwable e = ExceptionUtils.getRootCause(authException);
- if (e == null) {
- e = authException;
- }
- int errorCode = 500;
- if (e instanceof InvalidTokenException) {
- errorCode = HttpServletResponse.SC_UNAUTHORIZED;
- }
- if (e instanceof InsufficientAuthenticationException) {
- errorCode = HttpServletResponse.SC_FORBIDDEN;
- }
- HttpResponseResult result = new HttpResponseResult(false, errorCode, null, e.getMessage());
- ObjectMapper objectMapper = new ObjectMapper();
- printWriter.append(objectMapper.writeValueAsString(result));
- }
- }
|