Spring NimbusJwtDecoder: העברת הורדת ערכת JWK דרך פרוקסי
תנו למפענח ה-servlet RestTemplate שמודע לפרוקסי ושמרו על מאמתי issuer, audience ומאמתי אסימון נוספים בעת החלפת התצורה האוטומטית.
בקשת bearer נכנסת יכולה להגיע לשרת המשאבים בעוד אימות JWT נכשל בהורדת JWK יוצאת. הגדירו את לקוח ה-HTTP שבו משתמש המפענח הזה:
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));השתמשו ב-jwkSetUri וב-issuer האמיתיים של היישום והתקינו מפענח זה בתצורת שרת המשאבים בפועל. הדוגמה משתמשת בפרוקסי HTTP לא מאומת עם מפענח Nimbus בסגנון servlet. עבור כתובת JWK ציבורית בנתיב פרוקסי ציבורי מותר, רשימת פרוקסי ה-HTTP מספקת ערכי מארח ופורט מועמדים.
מאמת ה-issuer בדוגמה אינו מחליף את בדיקות ה-audience הנדרשות או בדיקות יישום אחרות. שמרו עליהן בעת החלפת מפענח שהוגדר אוטומטית; שינוי נתיב הורדת המפתח אינו מגדיר אילו אסימונים היישום אמור לקבל.
מפענח ריאקטיבי משתמש בממשק אחר. גם לקוחות אחרים לגילוי issuer או להשגת אסימונים שומרים על תצורת התעבורה שלהם.
מפתחות שמורים במטמון יכולים לגרום לאימות להצליח בלי הורדה חדשה. שמרו את כתובת המפתח שנכשל ואת שלב הרענון או האתחול בעת הערכת הנתיב.