Spring’ning reaktiv JWT dekoderi uchun proksi orqali JWKS yuklab olish
Mijozni NimbusReactiveJwtDecoder ichiga joylashtiring va resurs serveriga ulashda mavjud issuer, audience va boshqa token tekshiruvlarini saqlang.
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));Ishonchli jwkSetUri/issuer qiymatlaridan foydalaning va bu dekoderni haqiqiy ReactiveJwtDecoder binasi yoki resurs serverining aniq konfiguratsiyasi orqali o‘rnating. Uni o‘zgarmagan faol dekoder yonida yaratish kalitlarni olishni o‘zgartirmaydi. Agar ishonchli JWKS URL ommaviy bo‘lsa va ommaviy vositachilarga ruxsat berilsa, HTTP proksi ro‘yxati hisobsiz transport hosti va porti uchun nomzodlarni taqdim etadi.
Ko‘rsatilgan validator standart vaqt tekshiruvlarini va issuer tekshiruvini saqlaydi. Dekoderni almashtirganda audience talablarini va ilovaning barcha qo‘shimcha validatorlarini saqlang.
Ma’lum kalit URI uni topish uchun aniqlashni chetlab o‘tadi. Agar boshqa komponent hali ham aniqlash yoki token olishni amalga oshirsa, o‘sha mijozning marshrutini alohida sozlang.
Bu resurs serveridagi reaktiv JWT tekshiruvini qamrab oladi. Servlet resurs serveri, OAuth2 kirish va biznes API mijozlarining boshqa ulanish nuqtalari bor; muvaffaqiyatsiz kalit URL va bosqichni tekshiruv bilan birga saqlang.