From d9731500fac8ff17967995d9697708618974fd12 Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Tue, 7 Jan 2025 16:39:19 +0000 Subject: [PATCH] Use GrpcUtil to create shared executor --- .../security/GrpcSecurityAutoConfiguration.java | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/spring-grpc-spring-boot-autoconfigure/src/main/java/org/springframework/grpc/autoconfigure/server/security/GrpcSecurityAutoConfiguration.java b/spring-grpc-spring-boot-autoconfigure/src/main/java/org/springframework/grpc/autoconfigure/server/security/GrpcSecurityAutoConfiguration.java index bb1da18..d1e28d0 100644 --- a/spring-grpc-spring-boot-autoconfigure/src/main/java/org/springframework/grpc/autoconfigure/server/security/GrpcSecurityAutoConfiguration.java +++ b/spring-grpc-spring-boot-autoconfigure/src/main/java/org/springframework/grpc/autoconfigure/server/security/GrpcSecurityAutoConfiguration.java @@ -15,8 +15,6 @@ */ package org.springframework.grpc.autoconfigure.server.security; -import java.util.concurrent.Executors; - import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -31,12 +29,12 @@ import org.springframework.grpc.server.ServerBuilderCustomizer; import org.springframework.grpc.server.exception.GrpcExceptionHandler; import org.springframework.grpc.server.security.SecurityContextServerInterceptor; import org.springframework.grpc.server.security.SecurityGrpcExceptionHandler; -import org.springframework.scheduling.concurrent.CustomizableThreadFactory; import org.springframework.security.concurrent.DelegatingSecurityContextExecutor; import org.springframework.security.config.ObjectPostProcessor; import org.springframework.security.web.SecurityFilterChain; import io.grpc.ServerBuilder; +import io.grpc.internal.GrpcUtil; @ConditionalOnClass(ObjectPostProcessor.class) @AutoConfiguration(before = GrpcExceptionHandlerAutoConfiguration.class, after = SecurityAutoConfiguration.class) @@ -64,10 +62,9 @@ public class GrpcSecurityAutoConfiguration { } @Bean - public > ServerBuilderCustomizer securityContextCustomizer() { - // TODO: configure the thread pool via GrpcServerProperties? - return (serverBuilder) -> serverBuilder.executor(new DelegatingSecurityContextExecutor( - Executors.newCachedThreadPool(new CustomizableThreadFactory("grpc-server-")))); + public > ServerBuilderCustomizer securityContextExecutorCustomizer() { + return (serverBuilder) -> serverBuilder + .executor(new DelegatingSecurityContextExecutor(GrpcUtil.SHARED_CHANNEL_EXECUTOR.create())); } }