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

Uporabite zaupanja vredne vrednosti jwkSetUri/issuer in namestite ta dekoder prek pravega beana ReactiveJwtDecoder ali izrecne konfiguracije strežnika virov. Če ga ustvarite poleg nespremenjenega aktivnega dekoderja, to ne spremeni pridobivanja ključev. Če je zaupanja vredni URL JWKS javen in so javni posredniki dovoljeni, seznam proxyjev HTTP ponuja kandidate za gostitelja in vrata prenosa brez računa.

Prikazani validator ohrani privzete časovne preverbe in preverjanje izdajatelja. Ob zamenjavi dekoderja ohranite zahteve občinstva in vse dodatne validatorje aplikacije.

Znani URI ključa obide odkrivanje za njegovo iskanje. Če druga komponenta še vedno izvaja odkrivanje ali pridobivanje žetonov, ločeno nastavite pot tega odjemalca.

To zajema preverjanje reaktivnih JWT na strežniku virov. Strežnik virov Servlet, prijava OAuth2 in odjemalci poslovnih API-jev imajo druge priključne točke; shranite neuspešni URL ključa in stopnjo skupaj s preiskavo.

Sorodni članki