@@ -37,6 +37,7 @@ public class JwksKeyLocator extends LocatorAdapter<Key> {
37
37
private final Duration connectTimeout ;
38
38
private final Duration requestTimeout ;
39
39
private final int keyTtl ;
40
+ private final HttpClient httpClient ;
40
41
41
42
private final Map <String , CachedKey > keyResolutions = new ConcurrentHashMap <>();
42
43
private final ReentrantLock cleanupLock = new ReentrantLock ();
@@ -46,6 +47,7 @@ private JwksKeyLocator(Builder builder) {
46
47
this .connectTimeout = Objects .requireNonNull (builder .connectTimeout , "connectTimeout" );
47
48
this .requestTimeout = Objects .requireNonNull (builder .requestTimeout , "requestTimeout" );
48
49
this .keyTtl = builder .keyTtl ;
50
+ this .httpClient = HttpClient .newBuilder ().connectTimeout (connectTimeout ).build ();
49
51
}
50
52
51
53
public static Builder builder () {
@@ -75,12 +77,9 @@ private JwkInfoList computeKeyList() {
75
77
final HttpResponse <InputStream > httpResponse ;
76
78
try {
77
79
httpResponse =
78
- HttpClient .newBuilder ()
79
- .connectTimeout (connectTimeout )
80
- .build ()
81
- .send (
82
- HttpRequest .newBuilder (jwksUri ).GET ().timeout (requestTimeout ).build (),
83
- BodyHandlers .ofInputStream ());
80
+ httpClient .send (
81
+ HttpRequest .newBuilder (jwksUri ).GET ().timeout (requestTimeout ).build (),
82
+ BodyHandlers .ofInputStream ());
84
83
} catch (HttpTimeoutException e ) {
85
84
throw new JwtUnavailableException ("Failed to retrive jwk keys" , e );
86
85
} catch (IOException e ) {
0 commit comments