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 ಕೀ-ಸೆಟ್ ಪಡೆಯುವುದು ಆ ಪರಿಶೀಲನೆಗಳನ್ನು ಮಾಡುವುದಿಲ್ಲ.