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

Naudokite patikimas jwkSetUri/issuer reikšmes ir įdiekite šį dekoderį per tikrąjį ReactiveJwtDecoder bean arba aiškią išteklių serverio konfigūraciją. Jo sukūrimas šalia nepakeisto aktyvaus dekoderio nekeičia raktų gavimo. Jei patikimas JWKS URL yra viešas ir viešieji tarpininkai leidžiami, HTTP tarpinių serverių sąrašas siūlo kandidatus paskyros nereikalaujančio transporto hostui ir prievadui.

Rodomas tikrintuvas išlaiko numatytuosius laiko patikrinimus ir issuer patvirtinimą. Keisdami dekoderį išsaugokite audience reikalavimus ir visus papildomus programos tikrintuvus.

Žinomas rakto URI apeina aptikimą jam rasti. Jei kitas komponentas vis dar atlieka aptikimą ar žetonų gavimą, sukonfigūruokite to kliento maršrutą atskirai.

Tai apima reaktyviųjų JWT tikrinimą išteklių serveryje. Servlet išteklių serveris, OAuth2 prisijungimas ir verslo API klientai turi kitus prijungimo taškus; išsaugokite nepavykusį rakto URL ir etapą kartu su tyrimu.

Susiję straipsniai