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 bean эсвэл нөөцийн серверийн тодорхой тохиргоогоор суулгана уу. Үүнийг өөрчлөгдөөгүй идэвхтэй декодерын хажууд үүсгэх нь түлхүүр татахыг өөрчлөхгүй. Хэрэв итгэмжлэгдсэн JWKS URL нийтэд нээлттэй бөгөөд нийтийн зуучлагчийг зөвшөөрсөн бол HTTP прокси жагсаалт бүртгэлгүй тээврийн хост болон портын нэр дэвшигчдийг санал болгоно.
Харуулсан валидатор нь өгөгдмөл цагийн шалгалт болон issuer-ийн баталгаажуулалтыг хадгална. Декодерыг солихдоо audience-ийн шаардлага болон програмын бүх нэмэлт валидаторыг хадгална уу.
Мэдэгдэж буй түлхүүрийн URI нь түүнийг олох илрүүлэлтийг алгасдаг. Хэрэв өөр компонент илрүүлэлт эсвэл токен олж авах ажлыг үргэлжлүүлж байвал тэр клиентийн замыг тусад нь тохируулна уу.
Энэ нь нөөцийн сервер дээрх реактив JWT баталгаажуулалтыг хамарна. Servlet нөөцийн сервер, OAuth2 нэвтрэлт болон бизнес API клиентүүд өөр холболтын цэгтэй; амжилтгүй түлхүүрийн URL болон үе шатыг мөрдөн шалгалттай хамт хадгална уу.