Spring NimbusJwtDecoder: JWK సెట్ డౌన్లోడ్ను ప్రాక్సీ చేయండి
servlet డీకోడర్కు ప్రాక్సీ తెలిసిన RestTemplate ఇవ్వండి మరియు ఆటో-కాన్ఫిగరేషన్ను భర్తీ చేసేటప్పుడు issuer, audience మరియు అదనపు టోకెన్ ధృవీకర్తలను నిలుపుకోండి.
వచ్చే bearer అభ్యర్థన వనరు సర్వర్ను చేరుకోవచ్చు, కానీ బయటకు వెళ్లే JWK డౌన్లోడ్లో JWT ధృవీకరణ విఫలమవుతుంది. ఆ డీకోడర్ ఉపయోగించే 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 లేదా ఇతర అప్లికేషన్ తనిఖీలకు ప్రత్యామ్నాయం కాదు. స్వయంచాలకంగా కాన్ఫిగర్ చేసిన డీకోడర్ను భర్తీ చేసేటప్పుడు వాటిని నిలుపుకోండి; కీ-డౌన్లోడ్ మార్గాన్ని మార్చడం అప్లికేషన్ ఏ టోకెన్లను అంగీకరించాలో నిర్వచించదు.
reactive డీకోడర్ మరో ఇంటర్ఫేస్ ఉపయోగిస్తుంది. ఇతర issuer-అన్వేషణ లేదా టోకెన్-సేకరణ క్లయింట్లు కూడా తమ సొంత రవాణా కాన్ఫిగరేషన్ను నిలుపుకుంటాయి.
క్యాష్ చేసిన కీలు కొత్త డౌన్లోడ్ లేకుండా ధృవీకరణ విజయవంతం కావడానికి దారితీయవచ్చు. మార్గాన్ని మూల్యాంకనం చేసేటప్పుడు విఫలమైన కీ URL మరియు రిఫ్రెష్ లేదా ఇనిషియలైజేషన్ దశను నిలుపుకోండి.