Spring NimbusJwtDecoder: تمرير تنزيل مجموعة JWK عبر وسيط
امنح مفكّك الترميز الخاص بالservlet كائن RestTemplate يدرك الوسيط، واحتفظ بمدققات المُصدر والجمهور والمدققات الإضافية للرموز عند استبدال التهيئة التلقائية.
قد يصل طلب 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 قيم المضيف والمنفذ المرشحة.
مدقق المُصدر في المثال ليس بديلاً عن فحوص الجمهور المطلوبة أو غيرها من فحوص التطبيق. حافظ عليها عند استبدال مفكّك مُهيّأ تلقائياً؛ فتغيير مسار تنزيل المفتاح لا يحدد الرموز التي ينبغي أن يقبلها التطبيق.
يستخدم المفكّك التفاعلي واجهة أخرى. كما تحتفظ عملاء اكتشاف المُصدر أو الحصول على الرموز الآخرون بتهيئة النقل الخاصة بهم.
يمكن للمفاتيح المخزّنة مؤقتاً أن تجعل التحقق ينجح دون تنزيل جديد. احتفظ بعنوان URL للمفتاح الفاشل ومرحلة التحديث أو التهيئة عند تقييم المسار.