ZhuDongming
2019-08-15 50e24cdfd75ada4dd6ea5dce74803b7f96e3ba81
src/main/java/com/moral/security/auth/login/LoginAwareAuthenticationFailureHandler.java
@@ -3,6 +3,7 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.moral.security.common.ErrorCode;
import com.moral.security.common.ErrorResponse;
import com.moral.security.exceptions.AccountExpiredBadCredentialsException;
import com.moral.security.exceptions.AuthMethodNotSupportedException;
import com.moral.security.exceptions.JwtExpiredTokenException;
import org.springframework.beans.factory.annotation.Autowired;
@@ -40,14 +41,17 @@
      response.setStatus(HttpStatus.UNAUTHORIZED.value());
      response.setContentType(MediaType.APPLICATION_JSON_VALUE);
      
      if (e instanceof BadCredentialsException) {
      if(e instanceof AccountExpiredBadCredentialsException){
         mapper.writeValue(response.getWriter(), ErrorResponse.of(e.getMessage(), ErrorCode.ACCOUNT_EXPIRED, HttpStatus.UNAUTHORIZED));
      }else  if (e instanceof BadCredentialsException) {
         mapper.writeValue(response.getWriter(), ErrorResponse.of("Invalid username or password", ErrorCode.AUTHENTICATION, HttpStatus.UNAUTHORIZED));
      } else if (e instanceof JwtExpiredTokenException) {
         mapper.writeValue(response.getWriter(), ErrorResponse.of("Token has expired", ErrorCode.JWT_TOKEN_EXPIRED, HttpStatus.UNAUTHORIZED));
      } else if (e instanceof AuthMethodNotSupportedException) {
          mapper.writeValue(response.getWriter(), ErrorResponse.of(e.getMessage(), ErrorCode.AUTHENTICATION, HttpStatus.UNAUTHORIZED));
      }  else {
         mapper.writeValue(response.getWriter(), ErrorResponse.of(e.getMessage(), ErrorCode.AUTHENTICATION, HttpStatus.OK));
      }
      mapper.writeValue(response.getWriter(), ErrorResponse.of("Authentication failed", ErrorCode.AUTHENTICATION, HttpStatus.UNAUTHORIZED));
//      mapper.writeValue(response.getWriter(), ErrorResponse.of(e.getMessage(), ErrorCode.AUTHENTICATION, HttpStatus.UNAUTHORIZED));
//      mapper.writeValue(response.getWriter(), ErrorResponse.of("Authentication failed", ErrorCode.AUTHENTICATION, HttpStatus.UNAUTHORIZED));
   }
}