Gelen bearer isteği kaynak sunucusuna ulaşabilir, ancak JWT doğrulaması giden JWK indirmesinde başarısız olur. O kod çözücüsünün kullandığı HTTP istemcisini yapılandırın:

var factory = new org.springframework.http.client.SimpleClientHttpRequestFactory();
factory.setProxy(new java.net.Proxy(
    java.net.Proxy.Type.HTTP,
    new java.net.InetSocketAddress("proxy.example", 8080)));
var rest = new org.springframework.web.client.RestTemplate(factory);

var decoder = org.springframework.security.oauth2.jwt.NimbusJwtDecoder
    .withJwkSetUri(jwkSetUri)
    .restOperations(rest)
    .build();
decoder.setJwtValidator(
    org.springframework.security.oauth2.jwt.JwtValidators
        .createDefaultWithIssuer(issuer));

Uygulamanın gerçek jwkSetUri ve issuer değerlerini kullanın ve bu kod çözücüsünü gerçek kaynak sunucusu yapılandırmasına kurun. Örnek, servlet tarzı Nimbus kod çözücüsüyle kimlik doğrulaması olmayan bir HTTP proxy'si kullanır. İzin verilen genel proxy yolundaki genel bir JWK URL'si için HTTP proxy listesi aday ana bilgisayar ve port değerleri sağlar.

Örnekteki issuer doğrulayıcı, zorunlu audience veya diğer uygulama kontrollerinin yerine geçmez. Otomatik yapılandırılmış bir kod çözücüsünü değiştirirken bunları koruyun; anahtar indirme yolunu değiştirmek uygulamanın hangi token'ları kabul etmesi gerektiğini tanımlamaz.

Reaktif kod çözücü başka bir arayüz kullanır. Issuer keşfi veya token edinimi yapan diğer istemciler de kendi taşıma yapılandırmalarını korur.

Önbelleğe alınmış anahtarlar yeni bir indirme olmadan doğrulamanın başarılı olmasını sağlayabilir. Yolu değerlendirirken başarısız anahtarın URL'sini ve yenileme veya başlatma aşamasını saklayın.

İlgili makaleler