diff --git a/spring-grpc-core/src/main/java/org/springframework/grpc/server/security/SecurityGrpcExceptionHandler.java b/spring-grpc-core/src/main/java/org/springframework/grpc/server/security/SecurityGrpcExceptionHandler.java index b701f592..6a5b588c 100644 --- a/spring-grpc-core/src/main/java/org/springframework/grpc/server/security/SecurityGrpcExceptionHandler.java +++ b/spring-grpc-core/src/main/java/org/springframework/grpc/server/security/SecurityGrpcExceptionHandler.java @@ -20,6 +20,7 @@ import org.apache.commons.logging.LogFactory; import org.jspecify.annotations.Nullable; +import org.springframework.core.Ordered; import org.springframework.grpc.server.exception.GrpcExceptionHandler; import org.springframework.security.access.AccessDeniedException; import org.springframework.security.core.AuthenticationException; @@ -27,10 +28,16 @@ import io.grpc.Status; import io.grpc.StatusException; -public class SecurityGrpcExceptionHandler implements GrpcExceptionHandler { +public class SecurityGrpcExceptionHandler implements GrpcExceptionHandler, Ordered { private static final Log logger = LogFactory.getLog(SecurityGrpcExceptionHandler.class); + private final int order; + + public SecurityGrpcExceptionHandler(int order) { + this.order = order; + } + @Override public @Nullable StatusException handleException(Throwable exception) { if (exception instanceof AuthenticationException) { @@ -48,4 +55,9 @@ public class SecurityGrpcExceptionHandler implements GrpcExceptionHandler { return null; } + @Override + public int getOrder() { + return this.order; + } + } diff --git a/spring-grpc-server-spring-boot-autoconfigure/src/main/java/org/springframework/boot/grpc/server/autoconfigure/security/GrpcSecurityAutoConfiguration.java b/spring-grpc-server-spring-boot-autoconfigure/src/main/java/org/springframework/boot/grpc/server/autoconfigure/security/GrpcSecurityAutoConfiguration.java index a298e485..b910863b 100644 --- a/spring-grpc-server-spring-boot-autoconfigure/src/main/java/org/springframework/boot/grpc/server/autoconfigure/security/GrpcSecurityAutoConfiguration.java +++ b/spring-grpc-server-spring-boot-autoconfigure/src/main/java/org/springframework/boot/grpc/server/autoconfigure/security/GrpcSecurityAutoConfiguration.java @@ -72,7 +72,7 @@ static class ExceptionHandlerConfiguration { @Bean GrpcExceptionHandler accessExceptionHandler() { - return new SecurityGrpcExceptionHandler(); + return new SecurityGrpcExceptionHandler(0); } }