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 ব্যবহার করুন এবং এই ডিকোডারটি প্রকৃত রিসোর্স-সার্ভার কনফিগারেশনে ইনস্টল করুন। উদাহরণটি servlet-ধাঁচের Nimbus ডিকোডারের সঙ্গে একটি অনুমোদনহীন HTTP প্রক্সি ব্যবহার করে। অনুমোদিত পাবলিক-প্রক্সি পথে থাকা পাবলিক JWK URL-এর জন্য HTTP প্রক্সি তালিকা সম্ভাব্য host ও port মান দেয়।
উদাহরণের issuer ভ্যালিডেটর প্রয়োজনীয় audience বা অন্যান্য অ্যাপ্লিকেশন পরীক্ষার বিকল্প নয়। স্বয়ংক্রিয়ভাবে কনফিগার করা ডিকোডার প্রতিস্থাপনের সময় সেগুলো সংরক্ষণ করুন; key-ডাউনলোড পথ বদলালে অ্যাপ্লিকেশন কোন টোকেন গ্রহণ করবে তা নির্ধারিত হয় না।
একটি reactive ডিকোডার অন্য ইন্টারফেস ব্যবহার করে। অন্য issuer-আবিষ্কার বা টোকেন-সংগ্রহ ক্লায়েন্টও নিজেদের পরিবহন কনফিগারেশন ধরে রাখে।
ক্যাশ করা key নতুন ডাউনলোড ছাড়াই যাচাই সফল করতে পারে। পথটি মূল্যায়নের সময় ব্যর্থ key URL এবং refresh বা initialization ধাপ সংরক্ষণ করুন।