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 და ეტაპი გამოძიებასთან ერთად.

დაკავშირებული სტატიები