s2a: don't use reflection to load token manager (#11590)

This commit is contained in:
Riya Mehta 2024-10-03 14:45:01 -07:00 committed by GitHub
parent 9bb06af963
commit 35f0d56894
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 7 additions and 39 deletions

View File

@ -32,33 +32,13 @@ java_library(
)
java_library(
name = "token_fetcher",
srcs = ["src/main/java/io/grpc/s2a/internal/handshaker/tokenmanager/TokenFetcher.java"],
name = "token_manager",
srcs = glob([
"src/main/java/io/grpc/s2a/internal/handshaker/tokenmanager/*.java",
]),
deps = [
":s2a_identity",
],
)
java_library(
name = "access_token_manager",
srcs = [
"src/main/java/io/grpc/s2a/internal/handshaker/tokenmanager/AccessTokenManager.java",
],
deps = [
":s2a_identity",
":token_fetcher",
artifact("com.google.code.findbugs:jsr305"),
],
)
java_library(
name = "single_token_fetcher",
srcs = [
"src/main/java/io/grpc/s2a/internal/handshaker/tokenmanager/SingleTokenFetcher.java",
],
deps = [
":s2a_identity",
":token_fetcher",
artifact("com.google.guava:guava"),
],
)
@ -77,13 +57,12 @@ java_library(
"src/main/java/io/grpc/s2a/internal/handshaker/SslContextFactory.java",
],
deps = [
":access_token_manager",
":token_manager",
":common_java_proto",
":s2a_channel_pool",
":s2a_identity",
":s2a_java_proto",
":s2a_java_grpc_proto",
":single_token_fetcher",
"//api",
"//core:internal",
"//netty",

View File

@ -17,7 +17,6 @@
package io.grpc.s2a.internal.handshaker.tokenmanager;
import io.grpc.s2a.internal.handshaker.S2AIdentity;
import java.lang.reflect.Method;
import java.util.Optional;
import javax.annotation.concurrent.ThreadSafe;
@ -28,19 +27,9 @@ public final class AccessTokenManager {
/** Creates an {@code AccessTokenManager} based on the environment where the application runs. */
public static Optional<AccessTokenManager> create() {
Optional<?> tokenFetcher;
try {
Class<?> singleTokenFetcherClass =
Class.forName("io.grpc.s2a.internal.handshaker.tokenmanager.SingleTokenFetcher");
Method createTokenFetcher = singleTokenFetcherClass.getMethod("create");
tokenFetcher = (Optional) createTokenFetcher.invoke(null);
} catch (ClassNotFoundException e) {
tokenFetcher = Optional.empty();
} catch (ReflectiveOperationException e) {
throw new LinkageError(e.getMessage(), e);
}
Optional<TokenFetcher> tokenFetcher = SingleTokenFetcher.create();
return tokenFetcher.isPresent()
? Optional.of(new AccessTokenManager((TokenFetcher) tokenFetcher.get()))
? Optional.of(new AccessTokenManager(tokenFetcher.get()))
: Optional.empty();
}