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

Använd de betrodda jwkSetUri/issuer-värdena och installera denna dekodare via den faktiska ReactiveJwtDecoder-bönan eller en explicit resursserverkonfiguration. Att skapa den bredvid en oförändrad aktiv dekodare ändrar inte nyckelhämtningen. Om den betrodda JWKS-URL:en är offentlig och offentliga mellanhänder tillåts, tillhandahåller HTTP-proxylistan kandidater för värden och porten för transporten utan konto.

Valideraren som visas behåller standardtidskontrollerna och utfärdarvalideringen. Behåll publikkraven och alla ytterligare applikationsvaliderare när du byter ut dekodaren.

En känd nyckel-URI kringgår upptäckt för att lokalisera den. Om en annan komponent fortfarande utför upptäckt eller tokeninhämtning, konfigurera den klientens rutt separat.

Detta täcker reaktiv JWT-verifiering på resursservern. Servlet-resursservern, OAuth2-inloggning och affärs-API-klienter har andra krokar; spara den misslyckade nyckel-URL:en och steget tillsammans med utredningen.

Relaterade artiklar