ធនធាន WebClient ដែលឆ្លងកាត់ប្រូកស៊ីនៅតែអាចបរាជ័យមុនការហៅ API ប្រសិនបើការទទួលតូខេនប្រើកុងណេកទ័រផ្សេង។ សម្រាប់លំហូរ client_credentials បែបប្រតិកម្មរបស់ Spring Security 6.5 សូមភ្ជាប់ផ្នែកទាំងបី៖

HttpClient route = HttpClient.create()
    .proxy(p -> p.type(ProxyProvider.Proxy.HTTP)
        .host("proxy.example").port(8080));
WebClient tokenHttp = WebClient.builder()
    .clientConnector(new ReactorClientHttpConnector(route))
    .build();

var tokens = new WebClientReactiveClientCredentialsTokenResponseClient();
tokens.setWebClient(tokenHttp);

var provider = new ClientCredentialsReactiveOAuth2AuthorizedClientProvider();
provider.setAccessTokenResponseClient(tokens);

var manager = new AuthorizedClientServiceReactiveOAuth2AuthorizedClientManager(
    registrations, authorizedClients);
manager.setAuthorizedClientProvider(provider);

tokens.setWebClient កំណត់អតិថិជន HTTP របស់តូខេន; provider.setAccessTokenResponseClient កំណត់វាទៅអ្នកផ្តល់ grant; manager.setAuthorizedClientProvider ដំឡើងអ្នកផ្តល់នោះ។ ប្រើអ្នកគ្រប់គ្រងនេះក្នុងតម្រង OAuth ពិត ឬលំហូរការងារ authorized-client។

HttpClient និង ProxyProvider គឺជាប្រភេទ Reactor Netty។ WebClient និងកុងណេកទ័ររបស់វាគឺជាប្រភេទ Spring WebFlux។ ផ្តល់ ReactiveClientRegistrationRepository ដែលមានស្រាប់ជា registrations និង ReactiveOAuth2AuthorizedClientService ជា authorizedClients។

អ្នកផ្តល់នេះដោះស្រាយ client_credentials; រក្សាខ្សែអ្នកផ្តល់ឱ្យសមស្របប្រសិនបើត្រូវការ grant ផ្សេង។ ឧទាហរណ៍នេះគ្មានគណនីប្រូកស៊ីទេ; វាជារបស់ការដឹកជញ្ជូន មិនមែន OAuth client ID/secret ទេ។ សម្រាប់ token endpoint សាធារណៈដែលអនុញ្ញាតតាមរយៈអ្នកកណ្តាលសាធារណៈ សូមជ្រើស host និង port ពី បញ្ជីប្រូកស៊ី HTTP។

កំណត់កុងណេកទ័ររបស់ធនធានដែលបានការពារផងដែរ នៅពេលការហៅ API ទាំងនោះត្រូវការផ្លូវ។ ជោគជ័យតូខេន និងជោគជ័យ API គឺជាលទ្ធផលដាច់ដោយឡែក។

អត្ថបទពាក់ព័ន្ធ