កម្មវិធីរុករកឈានដល់អ្នកផ្តល់អត្តសញ្ញាណ បន្ទាប់មកការចូលប្រើបរាជ័យនៅពេលកម្មវិធីផ្លាស់ប្តូរកូដអនុញ្ញាតដែលបានត្រឡប់មកវិញ។ ការផ្លាស់ប្តូរនោះគឺជាសំណើចេញពីម៉ាស៊ីនមេកម្មវិធី ដែលមានអតិថិជន HTTP ផ្ទាល់ខ្លួន។

សម្រាប់ API ដែលផ្អែកលើ RestClient ដែលមានក្នុង Spring Security 6.5 សូមផ្តល់រោងចក្រសំណើដែលដឹងពីប្រូកស៊ី ដល់អតិថិជនឆ្លើយតបតូខេននៃកូដអនុញ្ញាត៖

SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
factory.setProxy(new java.net.Proxy(
    java.net.Proxy.Type.HTTP,
    new java.net.InetSocketAddress("proxy.example", 8080)));
factory.setConnectTimeout(5000);
factory.setReadTimeout(15000);

RestClient tokenHttp = RestClient.builder()
    .requestFactory(factory)
    .messageConverters(converters -> {
        converters.clear();
        converters.add(new FormHttpMessageConverter());
        converters.add(new OAuth2AccessTokenResponseHttpMessageConverter());
    })
    .defaultStatusHandler(new OAuth2ErrorResponseErrorHandler())
    .build();

RestClientAuthorizationCodeTokenResponseClient tokenClient =
    new RestClientAuthorizationCodeTokenResponseClient();
tokenClient.setRestClient(tokenHttp);

ថ្នាក់ឧបករណ៍បំប្លែង និងអ្នកគ្រប់គ្រងកំហុសរក្សាឥរិយាបថសំណើតូខេនដែលបានចងក្រងរបស់ Spring Security។ RestClient ទូទៅដែលកំណត់សម្រាប់តែ API JSON មិនពាក់ព័ន្ធមិនមែនជាការជំនួសសមមូលទេ។

ភ្ជាប់ tokenClient ដូចគ្នាទៅការកំណត់សុវត្ថិភាពដែលមានស្រាប់៖

http.oauth2Login(login -> login
    .tokenEndpoint(token -> token
        .accessTokenResponseClient(tokenClient)));

ទាំងនេះជាបំណែកកំណត់សម្រាប់កម្មវិធីដែលមានការចុះឈ្មោះអតិថិជន និង SecurityFilterChain រួចហើយ។ ពួកវាជ្រើសរើសប្រូកស៊ី HTTP ដោយគ្មានការផ្ទៀងផ្ទាត់។ ប្រូកស៊ីដែលត្រូវការព័ត៌មានសម្ងាត់ត្រូវការការកំណត់ផ្ទៀងផ្ទាត់ដែលត្រូវគ្នានៃការដឹកជញ្ជូនដែលបានជ្រើស។ សម្រាប់ចំណុចបញ្ចប់តូខេន HTTPS ដែលអាចចូលបានជាសាធារណៈលើផ្លូវសាធារណៈដែលបានអនុញ្ញាត ធាតុ HTTP ពីបញ្ជីប្រូកស៊ី HTTPអាចបំពេញអាសយដ្ឋានប្រូកស៊ីដែលគ្មានគណនីនោះ។

រក្សាម៉ាស៊ីនប្រូកស៊ីឱ្យដាច់ពីច្រក និងគ្រោង URL របស់វា។ ទុក URI តូខេនរបស់អ្នកផ្តល់អត្តសញ្ញាណជាគោលដៅ។ ឧទាហរណ៍នេះមិនជំនួសការផ្ទៀងផ្ទាត់វិញ្ញាបនបត្រទេ។

សំណើក្រោយៗត្រូវការការត្រួតពិនិត្យកម្មសិទ្ធិផ្ទាល់ខ្លួន។ ការទាញយក UserInfo ការផ្លាស់ប្តូរតូខេនធ្វើឱ្យស្រស់ ការផ្តល់ client-credentials និងការហៅ API ការពារអាចប្រើវត្ថុអតិថិជនផ្សេងទៀត។ កំណត់អតិថិជនគាំទ្រដែលត្រូវគ្នានៅពេលប្រតិបត្តិការនោះក៏ត្រូវការផ្លូវដែរ។ សម្រាប់លំហូរ client_credentials បែបប្រតិកម្មរបស់ Spring Security 6.5 សូមកំណត់អតិថិជនតូខេនបែបប្រតិកម្ម និងអ្នកផ្តល់ការផ្តល់របស់វាដោយឡែក។

ឧទាហរណ៍ចាស់ដែលប្រើ OAuth2RestTemplate និង AccessTokenProvider ជាកម្មសិទ្ធិរបស់គម្រោង Spring Security OAuth ចាស់ជាង។ ជ្រើសរើស API ដែលកម្មវិធីដំឡើងប្រើ មុនពេលសម្របកូដ។ កុំលាយវត្ថុទាំងនោះទៅក្នុងការកំណត់នេះ។

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