ការទាញយក JWKS តាមប្រូកស៊ីសម្រាប់ឌិកូដ JWT បែបរ៉េអាក់ទីវរបស់ Spring
ចាក់បញ្ចូលអតិថិជនទៅក្នុង 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 ដែលអាចទុកចិត្តបាន ហើយដំឡើងឌិកូដនេះតាមរយៈ bean ReactiveJwtDecoder ពិតប្រាកដ ឬការកំណត់ម៉ាស៊ីនមេធនធានច្បាស់លាស់។ ការបង្កើតវានៅក្បែរឌិកូដសកម្មដែលមិនបានផ្លាស់ប្តូរ មិនផ្លាស់ប្តូរការទាញយកកូនសោទេ។ ប្រសិនបើ URL JWKS ដែលអាចទុកចិត្តបានគឺសាធារណៈ ហើយអនុញ្ញាតឱ្យមានអន្តរការីសាធារណៈ បញ្ជីប្រូកស៊ី HTTP ផ្តល់បេក្ខជនសម្រាប់ host និង port នៃការដឹកជញ្ជូនដែលមិនត្រូវការគណនី។
អ្នកផ្ទៀងផ្ទាត់ដែលបង្ហាញរក្សាការត្រួតពិនិត្យពេលវេលាលំនាំដើម និងការផ្ទៀងផ្ទាត់ issuer។ រក្សាតម្រូវការ audience និងអ្នកផ្ទៀងផ្ទាត់បន្ថែមទាំងអស់របស់កម្មវិធី ពេលជំនួសឌិកូដ។
URI កូនសោដែលដឹងស្រាប់រំលងការរកឃើញដើម្បីរកទីតាំងវា។ ប្រសិនបើសមាសភាគផ្សេងទៀតនៅតែធ្វើការរកឃើញ ឬការទាញយកតូកិន សូមកំណត់ផ្លូវរបស់អតិថិជននោះដោយឡែក។
នេះគ្របដណ្តប់ការផ្ទៀងផ្ទាត់ JWT បែបរ៉េអាក់ទីវនៅលើម៉ាស៊ីនមេធនធាន។ ម៉ាស៊ីនមេធនធាន Servlet ការចូល OAuth2 និងអតិថិជន API ពាណិជ្ជកម្មមានទំពក់ផ្សេងទៀត; រក្សា URL កូនសោដែលបរាជ័យ និងដំណាក់កាលជាមួយការស៊ើបអង្កេត។