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

Folosiți valorile de încredere jwkSetUri/issuer și instalați acest decodor prin beanul real ReactiveJwtDecoder sau printr-o configurație explicită a serverului de resurse. Crearea lui lângă un decodor activ neschimbat nu modifică obținerea cheilor. Dacă URL-ul JWKS de încredere este public și intermediarii publici sunt permiteți, lista de proxy HTTP oferă candidați pentru gazda și portul transportului fără cont.

Validatorul afișat păstrează verificările de timp implicite și validarea emitentului. Păstrați cerințele de audiență și toți validatorii suplimentari ai aplicației atunci când înlocuiți decodorul.

Un URI de cheie cunoscut ocolește descoperirea pentru a o localiza. Dacă o altă componentă efectuează încă descoperire sau obținere de tokenuri, configurați separat ruta acelui client.

Acest lucru acoperă verificarea JWT reactive pe serverul de resurse. Serverul de resurse Servlet, autentificarea OAuth2 și clienții API de afaceri au alte puncte de conectare; păstrați URL-ul cheii eșuate și etapa împreună cu investigația.

Articole similare