private JwkProvider getJwkProvider()

in src/main/java/com/epam/aidial/auth/helper/services/BaseAuthProvider.java [77:111]


    private JwkProvider getJwkProvider() {
        JwkProvider local = this.jwkProvider;

        if (local == null) {
            synchronized (jwkProviderLock) {
                local = this.jwkProvider;
                if (local == null) {
                    if (!isNullOrEmpty(this.authProviderConfig.getJwksUriPath())) {
                        try {
                            ResponseEntity<String> openIdConfiguration = this.getOpenidConfiguration();
                            if (openIdConfiguration.getStatusCode() == HttpStatus.OK) {
                                JsonNode root = mapper.readTree(openIdConfiguration.getBody());
                                JsonNode jwksUriNode = root.get(this.authProviderConfig.getJwksUriPath());

                                if (!jwksUriNode.isMissingNode()) {
                                    local = new JwkProviderBuilder(this.buildJwkUrl(jwksUriNode.textValue())).build();
                                }
                            }

                        } catch (JsonProcessingException ignore) {
                            // ignore
                        }
                    }

                    if (local == null) {
                        local = new JwkProviderBuilder(this.authProviderConfig.getProviderUri()).build();
                    }

                    this.jwkProvider = local;
                }
            }
        }

        return local;
    }