jose4j ର ଦୂର JWK ଡାଉନଲୋଡ୍ HTTP ପ୍ରକ୍ସି ମାଧ୍ୟମରେ
ପ୍ରକ୍ସି-ସଚେତନ Get ଇନଷ୍ଟାନ୍ସକୁ HttpsJwks ସହିତ ସଂଯୋଗ କରନ୍ତୁ ଏବଂ କନଫିଗର ହୋଇଥିବା କୀ-ସେଟ୍ ଇନଷ୍ଟାନ୍ସକୁ ଏହାର କ୍ୟାସ୍ ଏବଂ ପରବର୍ତ୍ତୀ ରିଫ୍ରେସ୍ ପାଇଁ ବ୍ୟବହାରରେ ରଖନ୍ତୁ।
jose4j ର ଦୂର କୀ-ସେଟ୍ ଲୋଡରର ନିଜସ୍ୱ HTTP ପୁନଃପ୍ରାପ୍ତି ବସ୍ତୁ ଅଛି। ଯେତେବେଳେ ଆପ୍ଲିକେସନ୍ API କଲ୍ କରିପାରେ କିନ୍ତୁ ଇସ୍ୟୁଅରର JSON Web Keys ଡାଉନଲୋଡ୍ କରିପାରେ ନାହିଁ, ସେତେବେଳେ ସେହି ବସ୍ତୁକୁ କନଫିଗର କରନ୍ତୁ।
jose4j 0.9.6 API Get.setHttpProxy ଏବଂ HttpsJwks.setSimpleHttpGet ପ୍ରଦାନ କରେ:
org.jose4j.http.Get downloader = new org.jose4j.http.Get();
downloader.setHttpProxy(new java.net.Proxy(
java.net.Proxy.Type.HTTP,
new java.net.InetSocketAddress("proxy.example", 8080)));
downloader.setConnectTimeout(5000);
downloader.setReadTimeout(15000);
org.jose4j.jwk.HttpsJwks jwks = new org.jose4j.jwk.HttpsJwks(
"https://issuer.example/keys");
jwks.setSimpleHttpGet(downloader);ଏହି କନଫିଗର ହୋଇଥିବା jwks ବସ୍ତୁକୁ ଆପ୍ଲିକେସନର କୀ-ରିଜୋଲ୍ୟୁସନ ବ୍ୟବସ୍ଥାରେ ବ୍ୟବହାର କରନ୍ତୁ। ବିଦ୍ୟମାନ ରିଜୋଲଭର ପାଖରେ ଏହାକୁ ସୃଷ୍ଟି କରିବା ରିଜୋଲଭରର ଅନ୍ୟ ଇନଷ୍ଟାନ୍ସକୁ ବଦଳାଏ ନାହିଁ।
Get URL ଏବଂ HttpsURLConnection ବ୍ୟବହାର କରେ। ସ୍ପଷ୍ଟ Proxy URL.openConnection(Proxy) କୁ ପଠାଯାଏ; ଏହା ସମଗ୍ର JVM ପାଇଁ ନୂଆ ପ୍ରକ୍ସି ନୀତି ଆବଶ୍ୟକ ନକରି ମାର୍ଗକୁ ଏହି ଲୋଡରରେ ସୀମିତ କରେ। ପ୍ରକ୍ସି ପ୍ରମାଣୀକରଣ, ଯଦି ଆବଶ୍ୟକ, ଏକ ଅତିରିକ୍ତ ପରିବହନ ବିଷୟ। ଅନୁମୋଦିତ ସର୍ବସାଧାରଣରେ ପ୍ରବେଶଯୋଗ୍ୟ ଇସ୍ୟୁଅର URL ସର୍ବସାଧାରଣ ମଧ୍ୟସ୍ଥିମାନଙ୍କୁ ଅନୁମତି ଦିଆଗଲେ ଏବଂ କୌଣସି ପ୍ରକ୍ସି ଖାତା କନଫିଗର ନଥିଲେ HTTP ପ୍ରକ୍ସି ତାଲିକାରୁ HTTP ଠିକଣା ବ୍ୟବହାର କରିପାରେ।
HttpsJwks କ୍ୟାସ୍ ହେଡର ଏବଂ ଏହାର ଡିଫଲ୍ଟ-କ୍ୟାସ୍-ଅବଧି ସେଟିଂ ଉପରେ ଆଧାର କରି ପ୍ରତ୍ୟେକ ଇନଷ୍ଟାନ୍ସ ପାଇଁ କୀ କ୍ୟାସ୍ କରେ। ସେହି ଲାଭ ପାଇବା ପାଇଁ ଇନଷ୍ଟାନ୍ସ ରଖନ୍ତୁ। ପୂର୍ବରୁ କ୍ୟାସ୍ ହୋଇଥିବା କୀ ନେଟୱାର୍କ ବ୍ୟବହାର ନକରି ଯାଞ୍ଚ ଜାରି ରଖିବାକୁ ଦେଇପାରେ, ଯେତେବେଳେ ପରବର୍ତ୍ତୀ ପୁନଃପ୍ରାପ୍ତି କିମ୍ବା ରିଫ୍ରେସ୍ ଏବେ ମଧ୍ୟ କନଫିଗର ହୋଇଥିବା ମାର୍ଗ ଉପରେ ନିର୍ଭର କରେ।
ଏହା କୀ ପୁନଃପ୍ରାପ୍ତିକୁ କନଫିଗର କରେ। ଟୋକେନ ଯାଞ୍ଚ ପାଇଁ ଏବେ ମଧ୍ୟ ଆପ୍ଲିକେସନର ସାଧାରଣ ସ୍ୱାକ୍ଷର, ଇସ୍ୟୁଅର, ଦର୍ଶକ ଏବଂ ଅନ୍ୟ ଯାଞ୍ଚ ନୀତି ଆବଶ୍ୟକ; କେବଳ JSON କୀ-ସେଟ୍ ପାଇବା ସେହି ଯାଞ୍ଚଗୁଡ଼ିକ କରେ ନାହିଁ।