Skip to content

Commit e13a28f

Browse files
aivinog1augi
authored andcommitted
add support for custom classloaders in the default configuration
1 parent 504e34f commit e13a28f

File tree

2 files changed

+18
-5
lines changed

2 files changed

+18
-5
lines changed

keycloak/src/main/java/com/avast/grpc/jwt/keycloak/KeycloakFactory.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,15 @@
66
import org.keycloak.admin.client.KeycloakBuilder;
77

88
public final class KeycloakFactory {
9-
public static Config DefaultConfig =
10-
ConfigFactory.defaultReference().getConfig("keycloakDefaults");
9+
10+
public static final String KEYCLOAK_DEFAULTS_CONFIG_NAME = "keycloakDefaults";
1111

1212
public static Keycloak fromConfig(Config config) {
13-
Config fc = config.withFallback(DefaultConfig);
13+
return fromConfig(config, Thread.currentThread().getContextClassLoader());
14+
}
15+
16+
public static Keycloak fromConfig(Config config, ClassLoader contextClassLoader) {
17+
Config fc = config.withFallback(getDefaultConfig(contextClassLoader));
1418
return KeycloakBuilder.builder()
1519
.clientId(fc.getString("clientId"))
1620
.clientSecret(fc.getString("clientSecret"))
@@ -22,5 +26,9 @@ public static Keycloak fromConfig(Config config) {
2226
.build();
2327
}
2428

29+
public static Config getDefaultConfig(final ClassLoader classLoader) {
30+
return ConfigFactory.defaultReference(classLoader).getConfig(KEYCLOAK_DEFAULTS_CONFIG_NAME);
31+
}
32+
2533
private KeycloakFactory() {}
2634
}

keycloak/src/main/java/com/avast/grpc/jwt/keycloak/server/KeycloakJwtServerInterceptor.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.avast.grpc.jwt.keycloak.server;
22

3-
import static com.avast.grpc.jwt.keycloak.KeycloakFactory.DefaultConfig;
3+
import static com.avast.grpc.jwt.keycloak.KeycloakFactory.getDefaultConfig;
44

55
import com.avast.grpc.jwt.server.JwtServerInterceptor;
66
import com.avast.grpc.jwt.server.JwtTokenParser;
@@ -14,7 +14,12 @@ public KeycloakJwtServerInterceptor(JwtTokenParser<AccessToken> tokenParser) {
1414
}
1515

1616
public static KeycloakJwtServerInterceptor fromConfig(Config config) {
17-
Config fc = config.withFallback(DefaultConfig);
17+
return fromConfig(config, Thread.currentThread().getContextClassLoader());
18+
}
19+
20+
public static KeycloakJwtServerInterceptor fromConfig(
21+
Config config, ClassLoader contextClassLoader) {
22+
Config fc = config.withFallback(getDefaultConfig(contextClassLoader));
1823
KeycloakPublicKeyProvider publicKeyProvider =
1924
new DefaultKeycloakPublicKeyProvider(
2025
fc.getString("serverUrl"),

0 commit comments

Comments
 (0)