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

Käytä luotettuja jwkSetUri/issuer-arvoja ja asenna tämä purkuohjelma varsinaisen ReactiveJwtDecoder-beanin tai resurssipalvelimen eksplisiittisen määrityksen kautta. Sen luominen muuttumattoman aktiivisen purkuohjelman viereen ei muuta avainten hakua. Jos luotettu JWKS-URL on julkinen ja julkiset välittäjät sallitaan, HTTP-välityspalvelinluettelo tarjoaa ehdokkaita tilittömän siirron isännälle ja portille.

Näytetty validoija säilyttää oletusaikatarkistukset ja myöntäjän validoinnin. Säilytä yleisövaatimukset ja kaikki sovelluksen lisävalidoijat, kun vaihdat purkuohjelman.

Tunnettu avaimen URI ohittaa etsinnän sen paikantamiseksi. Jos jokin muu komponentti tekee edelleen etsintää tai tunnisteiden hankintaa, määritä kyseisen asiakkaan reitti erikseen.

Tämä kattaa reaktiivisten JWT-tunnisteiden vahvistuksen resurssipalvelimessa. Servlet-resurssipalvelimella, OAuth2-kirjautumisella ja liiketoiminta-API-asiakkailla on muut liitäntäkohdat; säilytä epäonnistunut avain-URL ja vaihe tutkinnan yhteydessä.

Aiheeseen liittyvät artikkelit