Spring-тің реактивті JWT декодері үшін прокси арқылы JWKS жүктеу
Клиентті NimbusReactiveJwtDecoder ішіне енгізіп, оны ресурстық серверге қосқанда бар issuer, audience және басқа токен тексерулерін сақтаңыз.
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 бины немесе ресурстық сервердің айқын конфигурациясы арқылы орнатыңыз. Оны өзгермеген белсенді декодердің қасында жасау кілт алуды өзгертпейді. Егер сенімді JWKS URL жалпыға ашық болса және жалпыға ашық делдалдарға рұқсат етілсе, HTTP прокси тізімі тіркелгісіз тасымалдау хосты мен порты үшін үміткерлерді ұсынады.
Көрсетілген валидатор әдепкі уақыт тексерулерін және issuer тексеруін сақтайды. Декодерді ауыстырған кезде audience талаптарын және қосымшаның барлық қосымша валидаторларын сақтаңыз.
Белгілі кілт URI оны табу үшін анықтауды айналып өтеді. Егер басқа құрамдас әлі де анықтау немесе токен алу жасаса, сол клиенттің маршрутын бөлек конфигурациялаңыз.
Бұл ресурстық сервердегі реактивті JWT тексеруін қамтиды. Servlet ресурстық сервері, OAuth2 кіруі және бизнес API клиенттерінің басқа ілмектері бар; сәтсіз кілт URL-ін және кезеңді зерттеумен бірге сақтаңыз.