Quellcode durchsuchen

:bug: Fixing a bug. oauth print http_error_code always the default

冷冷 vor 6 Jahren
Ursprung
Commit
c6dda5c8e9

+ 1 - 1
pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/component/PigxAuth2ExceptionSerializer.java

@@ -40,7 +40,7 @@ public class PigxAuth2ExceptionSerializer extends StdSerializer<PigxAuth2Excepti
 		gen.writeStartObject();
 		gen.writeObjectField("code", 1);
 		gen.writeStringField("message", value.getMessage());
-		gen.writeStringField("data", value.getOAuth2ErrorCode());
+		gen.writeStringField("data", value.getErrorCode());
 		gen.writeEndObject();
 	}
 }

+ 8 - 9
pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/component/PigxWebResponseExceptionTranslator.java

@@ -51,31 +51,31 @@ public class PigxWebResponseExceptionTranslator implements WebResponseExceptionT
 		Throwable[] causeChain = throwableAnalyzer.determineCauseChain(e);
 
 		Exception ase = (AuthenticationException) throwableAnalyzer.getFirstThrowableOfType(AuthenticationException.class,
-			causeChain);
+				causeChain);
 		if (ase != null) {
 			return handleOAuth2Exception(new UnauthorizedException(e.getMessage(), e));
 		}
 
 		ase = (AccessDeniedException) throwableAnalyzer
-			.getFirstThrowableOfType(AccessDeniedException.class, causeChain);
+				.getFirstThrowableOfType(AccessDeniedException.class, causeChain);
 		if (ase != null) {
 			return handleOAuth2Exception(new ForbiddenException(ase.getMessage(), ase));
 		}
 
 		ase = (InvalidGrantException) throwableAnalyzer
-			.getFirstThrowableOfType(InvalidGrantException.class, causeChain);
+				.getFirstThrowableOfType(InvalidGrantException.class, causeChain);
 		if (ase != null) {
 			return handleOAuth2Exception(new InvalidException(ase.getMessage(), ase));
 		}
 
 		ase = (HttpRequestMethodNotSupportedException) throwableAnalyzer
-			.getFirstThrowableOfType(HttpRequestMethodNotSupportedException.class, causeChain);
+				.getFirstThrowableOfType(HttpRequestMethodNotSupportedException.class, causeChain);
 		if (ase != null) {
 			return handleOAuth2Exception(new MethodNotAllowedException(ase.getMessage(), ase));
 		}
 
 		ase = (OAuth2Exception) throwableAnalyzer.getFirstThrowableOfType(
-			OAuth2Exception.class, causeChain);
+				OAuth2Exception.class, causeChain);
 
 		if (ase != null) {
 			return handleOAuth2Exception((OAuth2Exception) ase);
@@ -98,11 +98,10 @@ public class PigxWebResponseExceptionTranslator implements WebResponseExceptionT
 		// 客户端异常直接返回客户端,不然无法解析
 		if (e instanceof ClientAuthenticationException) {
 			return new ResponseEntity<>(e, headers,
-				HttpStatus.valueOf(status));
+					HttpStatus.valueOf(status));
 		}
-
-		return new ResponseEntity<>(new PigxAuth2Exception(e.getMessage()), headers,
-			HttpStatus.valueOf(status));
+		return new ResponseEntity<>(new PigxAuth2Exception(e.getMessage(), e.getOAuth2ErrorCode()), headers,
+				HttpStatus.valueOf(status));
 
 	}
 }

+ 8 - 0
pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/exception/PigxAuth2Exception.java

@@ -19,6 +19,7 @@ package com.pig4cloud.pigx.common.security.exception;
 
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.pig4cloud.pigx.common.security.component.PigxAuth2ExceptionSerializer;
+import lombok.Getter;
 import org.springframework.security.oauth2.common.exceptions.OAuth2Exception;
 
 /**
@@ -28,8 +29,15 @@ import org.springframework.security.oauth2.common.exceptions.OAuth2Exception;
  */
 @JsonSerialize(using = PigxAuth2ExceptionSerializer.class)
 public class PigxAuth2Exception extends OAuth2Exception {
+	@Getter
+	private String errorCode;
 
 	public PigxAuth2Exception(String msg) {
 		super(msg);
 	}
+
+	public PigxAuth2Exception(String msg, String errorCode) {
+		super(msg);
+		this.errorCode = errorCode;
+	}
 }