הורדות 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 המהימנים והתקינו מפענח זה דרך ה-bean האמיתי ReactiveJwtDecoder או דרך תצורה מפורשת של שרת המשאבים. יצירתו לצד מפענח פעיל ללא שינוי אינה משנה את אופן אחזור המפתחות. אם כתובת ה-JWKS המהימנה ציבורית ומותר שימוש במתווכים ציבוריים, רשימת פרוקסי ה-HTTP מספקת מועמדים עבור המארח והפורט של התעבורה ללא חשבון.
המאמת המוצג שומר על בדיקות הזמן המוגדרות כברירת מחדל ועל אימות המנפיק. שמרו על דרישות הקהל ועל כל המאמתים הנוספים של היישום בעת החלפת המפענח.
כתובת מפתח מוכרת עוקפת את תהליך הגילוי לאיתורו. אם רכיב אחר עדיין מבצע גילוי או רכישת אסימונים, הגדירו את המסלול של אותו לקוח בנפרד.
הדבר מכסה אימות JWT ריאקטיבי בשרת המשאבים. לשרת המשאבים Servlet, לכניסה דרך OAuth2 וללקוחות API עסקיים יש נקודות חיבור אחרות; שמרו את כתובת המפתח שנכשלה ואת השלב יחד עם החקירה.