Spring ਦੇ ਰਿਐਕਟਿਵ JWT ਡੀਕੋਡਰ ਲਈ ਪ੍ਰੌਕਸੀ JWKS ਡਾਊਨਲੋਡ
ਕਲਾਇੰਟ ਨੂੰ NimbusReactiveJwtDecoder ਵਿੱਚ ਇੰਜੈਕਟ ਕਰੋ ਅਤੇ ਰਿਸੋਰਸ ਸਰਵਰ ਨਾਲ ਜੋੜਦਿਆਂ ਮੌਜੂਦਾ issuer, audience ਤੇ ਹੋਰ ਟੋਕਨ ਜਾਂਚਾਂ ਬਣਾਈ ਰੱਖੋ।
var transport = reactor.netty.http.client.HttpClient.create()
.proxy(spec -> spec
.type(reactor.netty.transport.ProxyProvider.Proxy.HTTP)
.host("proxy.example")
.port(8080));
var webClient = org.springframework.web.reactive.function.client.WebClient
.builder()
.clientConnector(new org.springframework.http.client.reactive
.ReactorClientHttpConnector(transport))
.build();
var decoder = org.springframework.security.oauth2.jwt.NimbusReactiveJwtDecoder
.withJwkSetUri(jwkSetUri)
.webClient(webClient)
.build();
decoder.setJwtValidator(org.springframework.security.oauth2.jwt.JwtValidators
.createDefaultWithIssuer(issuer));ਭਰੋਸੇਯੋਗ jwkSetUri/issuer ਮੁੱਲ ਵਰਤੋ ਅਤੇ ਇਸ ਡੀਕੋਡਰ ਨੂੰ ਅਸਲ ReactiveJwtDecoder ਬੀਨ ਜਾਂ ਸਪਸ਼ਟ ਰਿਸੋਰਸ-ਸਰਵਰ ਸੰਰਚਨਾ ਰਾਹੀਂ ਸਥਾਪਤ ਕਰੋ। ਬਦਲੇ ਬਿਨਾਂ ਸਰਗਰਮ ਡੀਕੋਡਰ ਦੇ ਕੋਲ ਇਸਨੂੰ ਬਣਾਉਣ ਨਾਲ ਕੁੰਜੀ ਪ੍ਰਾਪਤੀ ਨਹੀਂ ਬਦਲਦੀ। ਜੇ ਭਰੋਸੇਯੋਗ JWKS URL ਜਨਤਕ ਹੈ ਅਤੇ ਜਨਤਕ ਵਿਚੋਲਿਆਂ ਦੀ ਆਗਿਆ ਹੈ, ਤਾਂ HTTP ਪ੍ਰੌਕਸੀ ਸੂਚੀ ਬਿਨਾਂ ਖਾਤੇ ਵਾਲੇ ਟਰਾਂਸਪੋਰਟ ਦੇ ਹੋਸਟ ਤੇ ਪੋਰਟ ਲਈ ਉਮੀਦਵਾਰ ਦਿੰਦੀ ਹੈ।
ਦਿਖਾਇਆ ਵੈਲੀਡੇਟਰ ਡਿਫਾਲਟ ਸਮਾਂ ਜਾਂਚਾਂ ਅਤੇ issuer ਪ੍ਰਮਾਣਿਕਤਾ ਰੱਖਦਾ ਹੈ। ਡੀਕੋਡਰ ਬਦਲਦਿਆਂ audience ਲੋੜਾਂ ਅਤੇ ਐਪ ਦੇ ਸਾਰੇ ਵਾਧੂ ਵੈਲੀਡੇਟਰ ਬਣਾਈ ਰੱਖੋ।
ਜਾਣਿਆ ਕੁੰਜੀ URI ਇਸਨੂੰ ਲੱਭਣ ਲਈ ਖੋਜ ਨੂੰ ਛੱਡ ਦਿੰਦਾ ਹੈ। ਜੇ ਕੋਈ ਹੋਰ ਹਿੱਸਾ ਅਜੇ ਵੀ ਖੋਜ ਜਾਂ ਟੋਕਨ ਪ੍ਰਾਪਤੀ ਕਰਦਾ ਹੈ, ਤਾਂ ਉਸ ਕਲਾਇੰਟ ਦਾ ਰਸਤਾ ਵੱਖਰਾ ਸੰਰਚਿਤ ਕਰੋ।
ਇਹ ਰਿਸੋਰਸ ਸਰਵਰ ਉੱਤੇ ਰਿਐਕਟਿਵ JWT ਪੁਸ਼ਟੀਕਰਨ ਨੂੰ ਕਵਰ ਕਰਦਾ ਹੈ। Servlet ਰਿਸੋਰਸ ਸਰਵਰ, OAuth2 ਲੌਗਇਨ ਅਤੇ ਕਾਰੋਬਾਰੀ API ਕਲਾਇੰਟਾਂ ਦੇ ਹੋਰ ਹੁੱਕ ਹਨ; ਅਸਫਲ ਕੁੰਜੀ URL ਅਤੇ ਪੜਾਅ ਜਾਂਚ ਨਾਲ ਰੱਖੋ।