ดาวน์โหลด JWKS ผ่านพร็อกซีสำหรับตัวถอดรหัส JWT แบบรีแอกทีฟของ Spring
Inject ไคลเอนต์เข้าใน NimbusReactiveJwtDecoder และคงการตรวจสอบ issuer, audience และโทเคนอื่น ๆ ที่มีอยู่เมื่อเชื่อมต่อกับ resource server
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 จริงหรือการกำหนดค่า resource server อย่างชัดเจน การสร้างมันข้างตัวถอดรหัสที่ใช้งานอยู่โดยไม่เปลี่ยนแปลงจะไม่เปลี่ยนการดึงคีย์ หาก URL ของ JWKS ที่เชื่อถือได้เป็นสาธารณะและอนุญาตให้ใช้ตัวกลางสาธารณะ รายการพร็อกซี HTTP จะให้ผู้สมัครสำหรับโฮสต์และพอร์ตของการขนส่งที่ไม่ต้องใช้บัญชี
ตัวตรวจสอบที่แสดงจะคงการตรวจเวลาตามค่าเริ่มต้นและการตรวจสอบ issuer ไว้ คงข้อกำหนด audience และตัวตรวจสอบเพิ่มเติมทั้งหมดของแอปเมื่อเปลี่ยนตัวถอดรหัส
URI ของคีย์ที่รู้จักจะข้ามการค้นหาเพื่อระบุตำแหน่ง หากองค์ประกอบอื่นยังคงทำการค้นหาหรือรับโทเคน ให้กำหนดค่าเส้นทางของไคลเอนต์นั้นแยกต่างหาก
ส่วนนี้ครอบคลุมการตรวจสอบ JWT แบบรีแอกทีฟบน resource server resource server แบบ Servlet การเข้าสู่ระบบ OAuth2 และไคลเอนต์ API ธุรกิจมีจุดเชื่อมต่ออื่น; เก็บ URL ของคีย์ที่ล้มเหลวและขั้นตอนไว้พร้อมการสอบสวน