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

Použijte důvěryhodné hodnoty jwkSetUri/issuer a tento dekodér nainstalujte přes skutečný bean ReactiveJwtDecoder nebo explicitní konfiguraci resource serveru. Vytvoření vedle nezměněného aktivního dekodéru nemění získávání klíčů. Pokud je důvěryhodná adresa JWKS veřejná a veřejní prostředníci jsou povoleni, seznam HTTP proxy nabízí kandidáty pro hostitele a port transportu bez účtu.

Zobrazený validátor zachovává výchozí časové kontroly a ověření vydavatele. Při nahrazení dekodéru zachovejte požadavky na publikum a všechny další validátory aplikace.

Známé URI klíče obchází zjišťování jeho umístění. Pokud jiná komponenta stále provádí zjišťování nebo získávání tokenů, nakonfigurujte trasu tohoto klienta zvlášť.

Toto pokrývá ověřování reaktivních JWT na resource serveru. Servletový resource server, přihlášení OAuth2 a klienti obchodních API mají jiné háčky; uchovejte neúspěšnou adresu klíče a fázi u vyšetřování.

Související články