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));

Gebruik die vertroude jwkSetUri/issuer-waardes en installeer hierdie dekodeerder via die werklike ReactiveJwtDecoder-bean of eksplisiete konfigurasie van die hulpbronbediener. Om dit langs 'n onveranderde aktiewe dekodeerder te skep, verander nie sleutelonttrekking nie. As die vertroude JWKS-URL publiek is en publieke tussengangers toegelaat word, verskaf die HTTP-proxylys kandidate vir die gasheer en poort van die vervoer sonder rekening.

Die getoonde valideerder behou die standaard tydkontroles en uitreikervalidasi. Behou die gehoorvereistes en alle bykomende valideerders van die toepassing wanneer jy die dekodeerder vervang.

'n Bekende sleutel-URI omseil ontdekking om dit te vind. As 'n ander komponent steeds ontdekking of tokenverkryging doen, konfigureer daardie kliënt se roete afsonderlik.

Dit dek reaktiewe JWT-verifikasie op die hulpbronbediener. Die Servlet-hulpbronbediener, OAuth2-aanmelding en besigheids-API-kliënte het ander hake; hou die mislukte sleutel-URL en die stadium by die ondersoek.

Verwante artikels