Spring NimbusJwtDecoder: JWK to'plamini yuklab olishni proksi orqali o'tkazish
Servlet dekoderiga proksini taniydigan RestTemplate bering va avtomatik konfiguratsiyani almashtirganda issuer, audience va qo'shimcha token validatorlarini saqlang.
Kiruvchi bearer so'rovi resurs serveriga yetib borishi mumkin, ammo JWT tekshiruvi chiquvchi JWK yuklab olishda muvaffaqiyatsiz bo'ladi. O'sha dekoder ishlatadigan HTTP mijozini sozlang:
var factory = new org.springframework.http.client.SimpleClientHttpRequestFactory();
factory.setProxy(new java.net.Proxy(
java.net.Proxy.Type.HTTP,
new java.net.InetSocketAddress("proxy.example", 8080)));
var rest = new org.springframework.web.client.RestTemplate(factory);
var decoder = org.springframework.security.oauth2.jwt.NimbusJwtDecoder
.withJwkSetUri(jwkSetUri)
.restOperations(rest)
.build();
decoder.setJwtValidator(
org.springframework.security.oauth2.jwt.JwtValidators
.createDefaultWithIssuer(issuer));Ilovaning haqiqiy jwkSetUri va issuer qiymatlaridan foydalaning va bu dekoderni haqiqiy resurs-server konfiguratsiyasiga o'rnating. Misolda servlet uslubidagi Nimbus dekoderi bilan autentifikatsiyasiz HTTP proksi ishlatiladi. Ruxsat etilgan ommaviy proksi yo'lidagi ommaviy JWK URL uchun HTTP proksilar ro'yxati mumkin bo'lgan host va port qiymatlarini taqdim etadi.
Misoldagi issuer validator majburiy audience yoki boshqa ilova tekshiruvlarining o'rnini bosmaydi. Avtomatik sozlangan dekoderni almashtirganda ularni saqlang; kalit yuklab olish yo'lini o'zgartirish ilova qaysi tokenlarni qabul qilishi kerakligini belgilamaydi.
Reaktiv dekoder boshqa interfeysdan foydalanadi. Issuer aniqlash yoki token olish mijozlari ham o'zlarining transport konfiguratsiyasini saqlaydi.
Keshlangan kalitlar yangi yuklab olishsiz tekshiruvning muvaffaqiyatli bo'lishiga olib kelishi mumkin. Yo'lni baholashda muvaffaqiyatsiz kalit URLini va yangilash yoki ishga tushirish bosqichini saqlang.