में spring-security-oauth2:2.4.0.RELEASE
इस तरह के रूप कक्षाएं OAuth2RestTemplate
, OAuth2ProtectedResourceDetails
और ClientCredentialsAccessTokenProvider
सभी के रूप में पदावनत चिह्नित किया गया है।
इन वर्गों पर javadoc से यह एक वसंत सुरक्षा प्रवासन गाइड की ओर इशारा करता है जो बताता है कि लोगों को कोर वसंत-सुरक्षा 5 परियोजना में स्थानांतरित करना चाहिए। हालांकि मुझे यह पता लगाने में परेशानी हो रही है कि मैं इस परियोजना में अपने उपयोग के मामले को कैसे लागू करूंगा।
यदि आप अपने आवेदन के लिए आने वाले अनुरोधों को प्रमाणित करना चाहते हैं और आप पहचान को सत्यापित करने के लिए तीसरे पक्ष के OAuth प्रदाता का उपयोग करना चाहते हैं, तो दस्तावेज़ीकरण और उदाहरण के सभी एक 3 भाग OAuth प्रदाता के साथ एकीकृत करने के बारे में बात करते हैं।
मेरे उपयोग के मामले में मैं जो करना चाहता हूं वह RestTemplate
एक बाहरी सेवा के साथ एक अनुरोध करना है जो OAuth द्वारा संरक्षित है। वर्तमान में मैं OAuth2ProtectedResourceDetails
अपनी क्लाइंट आईडी और सीक्रेट बनाता हूं, जिसे मैं पास करता हूं OAuth2RestTemplate
। मैं भी एक कस्टम है ClientCredentialsAccessTokenProvider
को जोड़ा गया OAuth2ResTemplate
है कि बस टोकन अनुरोध है कि OAuth प्रदाता मैं उपयोग कर रहा हूँ के लिए आवश्यक हैं करने के लिए कुछ अतिरिक्त हेडर कहते हैं।
स्प्रिंग-सिक्योरिटी 5 डॉक्यूमेंटेशन में मैंने एक सेक्शन पाया है जिसमें टोकन रिक्वेस्ट को कस्टमाइज़ करने का जिक्र है , लेकिन फिर से वह थर्ड पार्टी OAuth प्रोवाइडर के साथ इनकमिंग रिक्वेस्ट को प्रमाणित करने के संदर्भ में दिखता है। यह स्पष्ट नहीं है कि आप इसका उपयोग किसी चीज के साथ संयोजन के रूप में करेंगे ClientHttpRequestInterceptor
ताकि यह सुनिश्चित किया जा सके कि बाहरी सेवा के प्रत्येक निवर्तमान अनुरोध को पहले एक टोकन मिलता है और फिर उस अनुरोध में जोड़ा जाता है।
इसके अलावा ऊपर दिए गए माइग्रेशन गाइड में एक संदर्भ है OAuth2AuthorizedClientService
जो यह कहता है कि यह इंटरसेप्टर में उपयोग करने के लिए उपयोगी है, लेकिन फिर से यह ऐसा दिखता है जैसे यह उन चीजों पर निर्भर करता है, ClientRegistrationRepository
जो ऐसा लगता है जहां यह तीसरे पक्ष के प्रदाताओं के लिए पंजीकरण बनाए रखता है यदि आप उपयोग करना चाहते हैं यह सुनिश्चित करने के लिए कि आने वाले अनुरोध को प्रमाणित किया जाए।
क्या मेरे आवेदन से आउटगोइंग अनुरोधों को जोड़ने के लिए टोकन प्राप्त करने के लिए OAuth प्रदाताओं को पंजीकृत करने के लिए वसंत-सुरक्षा 5 में नई कार्यक्षमता का उपयोग करने का कोई तरीका है?
WebClient
है) या कुछ इसी तरह का उपयोग OAuth टोकन लाने के लिए किया जाता है कस्टम OAuth प्रदाता (इनमें से कोई भी OoTB जैसे फेसबुक / Google का समर्थन नहीं करता है) एक निवर्तमान अनुरोध पर इसे जोड़ने के लिए। सभी उदाहरण अन्य प्रदाताओं के साथ आने वाले अनुरोधों को प्रमाणित करने पर ध्यान केंद्रित करते हैं। क्या आपको किसी अच्छे उदाहरण के लिए कोई संकेत मिला है?