Преземања на JWKS преку прокси за реактивниот JWT декодер на Spring
Вметнете го клиентот во 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 на клучот и фазата со истрагата.