Skip to content

Commit

Permalink
s2a: don't use reflection to load token manager (#11590)
Browse files Browse the repository at this point in the history
  • Loading branch information
rmehta19 authored Oct 3, 2024
1 parent 9bb06af commit 35f0d56
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 39 deletions.
31 changes: 5 additions & 26 deletions s2a/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -32,33 +32,13 @@ java_library(
)

java_library(
name = "token_fetcher",
srcs = ["src/main/java/io/grpc/s2a/internal/handshaker/tokenmanager/TokenFetcher.java"],
deps = [
":s2a_identity",
],
)

java_library(
name = "access_token_manager",
srcs = [
"src/main/java/io/grpc/s2a/internal/handshaker/tokenmanager/AccessTokenManager.java",
],
name = "token_manager",
srcs = glob([
"src/main/java/io/grpc/s2a/internal/handshaker/tokenmanager/*.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"),
],
)
Expand All @@ -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",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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();
}

Expand Down

0 comments on commit 35f0d56

Please sign in to comment.