Skip to content

Commit 14f2d3c

Browse files
committed
Bugfix: HttpClient is not reused
1 parent e4f231d commit 14f2d3c

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

tokens/src/main/java/io/scalecube/security/tokens/jwt/JwksKeyLocator.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ public class JwksKeyLocator extends LocatorAdapter<Key> {
3737
private final Duration connectTimeout;
3838
private final Duration requestTimeout;
3939
private final int keyTtl;
40+
private final HttpClient httpClient;
4041

4142
private final Map<String, CachedKey> keyResolutions = new ConcurrentHashMap<>();
4243
private final ReentrantLock cleanupLock = new ReentrantLock();
@@ -46,6 +47,7 @@ private JwksKeyLocator(Builder builder) {
4647
this.connectTimeout = Objects.requireNonNull(builder.connectTimeout, "connectTimeout");
4748
this.requestTimeout = Objects.requireNonNull(builder.requestTimeout, "requestTimeout");
4849
this.keyTtl = builder.keyTtl;
50+
this.httpClient = HttpClient.newBuilder().connectTimeout(connectTimeout).build();
4951
}
5052

5153
public static Builder builder() {
@@ -75,12 +77,9 @@ private JwkInfoList computeKeyList() {
7577
final HttpResponse<InputStream> httpResponse;
7678
try {
7779
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());
8483
} catch (HttpTimeoutException e) {
8584
throw new JwtUnavailableException("Failed to retrive jwk keys", e);
8685
} catch (IOException e) {

0 commit comments

Comments
 (0)