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 پروكسىي تىزىملىكى ھېساباتسىز توشۇش host ۋە portى ئۈچۈن نامزاتلارنى تەمىنلەيدۇ.

كۆرسىتىلگەن دەلىللىگۈچ سۈكۈتتىكى ۋاقىت تەكشۈرۈشلىرىنى ۋە issuer دەلىللەشنى ساقلايدۇ. شىفىرلىغۇچىنى ئالماشتۇرغاندا audience تەلەپلىرىنى ۋە ئەپنىڭ بارلىق قوشۇمچە دەلىللىگۈچلىرىنى ساقلاڭ.

مەلۇم ئاچقۇچ URI ئۇنى تېپىش ئۈچۈن بايقاشنى ئاتلاپ ئۆتىدۇ. ئەگەر باشقا بىر زاپچاس يەنىلا بايقاش ياكى توكېن ئېلىشنى ئىجرا قىلسا، ئۇ خېرىدارنىڭ يولىنى ئايرىم سەپلىڭ.

بۇ بايلىق مۇلازىمېتىرىدىكى ئاكسىيەلىك JWT دەلىللەشنى ئۆز ئىچىگە ئالىدۇ. Servlet بايلىق مۇلازىمېتىرى، OAuth2 كىرىش ۋە سودا API خېرىدارلىرىنىڭ باشقا ئۇلاش نۇقتىلىرى بار؛ مەغلۇپ بولغان ئاچقۇچ URLى ۋە باسقۇچنى تەكشۈرۈش بىلەن بىللە ساقلاڭ.

مۇناسىۋەتلىك ماقالىلەر