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 эсвэл бусад аппликейшны шалгалтыг орлохгүй. Автоматаар тохируулсан декодерийг солих үед тэдгээрийг хадгална уу; түлхүүр татах замыг өөрчлөх нь аппликейшн ямар токен хүлээн авахыг тодорхойлохгүй.
Reactive декодер өөр интерфейс ашигладаг. Issuer илрүүлэх эсвэл токен авах бусад клиентүүд ч өөрийн тээврийн тохиргоог хадгалдаг.
Кэшлэсэн түлхүүрүүд шинэ таталтгүйгээр шалгалтыг амжилттай болгож болно. Замыг үнэлэхдээ бүтэлгүйтсэн түлхүүрийн URL болон сэргээх эсвэл эхлүүлэх үеийг хадгална уу.