Преузимања JWKS преко проксија за Спрингов реактивни JWT декодер
Убаците клијента у NimbusReactiveJwtDecoder и задржите постојеће провере издаваоца, публике и других токена при повезивању са сервером ресурса.
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));Користите поуздане вредности jwkSetUri/issuer и инсталирајте овај декодер кроз стварни ReactiveJwtDecoder bean или експлицитну конфигурацију сервера ресурса. Његово стварање поред непромењеног активног декодера не мења преузимање кључева. Ако је поуздани JWKS URL јаван и јавни посредници су дозвољени, листа HTTP проксија нуди кандидате за хост и порт транспорта без налога.
Приказани валидатор задржава подразумеване временске провере и валидацију издаваоца. Задржите захтеве публике и све додатне валидаторе апликације када замењујете декодер.
Познати URI кључа заобилази откривање ради његовог лоцирања. Ако друга компонента још обавља откривање или добављање токена, конфигуришите руту тог клијента одвојено.
Ово покрива проверу реактивних JWT-ова на серверу ресурса. Servlet сервер ресурса, пријава OAuth2 и клијенти пословних API-ја имају друге тачке повезивања; сачувајте неуспешан URL кључа и фазу уз истрагу.