var transport = reactor.netty.http.client.HttpClient.create()
    .proxy(spec -> spec
        .type(reactor.netty.transport.ProxyProvider.Proxy.HTTP)
        .host("proxy.example")
        .port(8080));
var webClient = org.springframework.web.reactive.function.client.WebClient
    .builder()
    .clientConnector(new org.springframework.http.client.reactive
        .ReactorClientHttpConnector(transport))
    .build();

var decoder = org.springframework.security.oauth2.jwt.NimbusReactiveJwtDecoder
    .withJwkSetUri(jwkSetUri)
    .webClient(webClient)
    .build();
decoder.setJwtValidator(org.springframework.security.oauth2.jwt.JwtValidators
    .createDefaultWithIssuer(issuer));

Gunakan nilai jwkSetUri/issuer yang tepercaya dan pasang dekoder ini melalui bean ReactiveJwtDecoder yang sebenarnya atau konfigurasi server sumber daya yang eksplisit. Membuatnya di samping dekoder aktif yang tidak berubah tidak mengubah pengambilan kunci. Jika URL JWKS tepercaya bersifat publik dan perantara publik diizinkan, daftar proxy HTTP menyediakan kandidat untuk host dan port transport tanpa akun.

Validator yang ditampilkan mempertahankan pemeriksaan waktu bawaan dan validasi issuer. Pertahankan persyaratan audiens dan semua validator aplikasi tambahan saat mengganti dekoder.

URI kunci yang diketahui melewati penemuan untuk melokasikannya. Jika komponen lain masih melakukan penemuan atau perolehan token, konfigurasikan rute klien tersebut secara terpisah.

Ini mencakup verifikasi JWT reaktif di server sumber daya. Server sumber daya Servlet, login OAuth2, dan klien API bisnis memiliki kait lain; simpan URL kunci yang gagal dan tahapannya bersama penyelidikan.

Artikel terkait