@ डेवसियर के answer के अलावा, जो अधिकांश मामलों के लिए काम करना चाहिए। कभी-कभी कॉन्फ़िगरेशन और कस्टमाइज़ेशन के आधार पर उपर्युक्त विधि काम नहीं कर सकती है, अगर FrameworkEndpointHandlerMapping
स्प्रिंग सिक्योरिटी ओएथ पैकेज से आपके आवेदन के RequestMappingHandlerMapping
से अधिक ऑर्डर है। यदि यह मामला है, तो सर्वलेट प्रेषक कभी भी आपको मैपिंग तक नहीं पहुंच पाएगा और हमेशा डिफ़ॉल्ट पृष्ठ दिखाएगा।
इसे ठीक करने का एक तरीका है मैपर्स के क्रम को बदलना, FrameworkEndpointHandlerMapping
का ऑर्डर Order.LOWEST_PRECEDENCE - 2
है।
एक और तरीका है एक कस्टम URL, FrameworkEndpointHandlerMapping
द्वारा मैप नहीं करने के लिए अनुमोदन पेज सेट करने के लिए है, इस प्रकार सर्वलेट डिस्पैचर इच्छा /oauth/custom_confirm_access
और /oauth/custom_error
की तरह के एक विन्यास मैपिंग के रूप में इस्तेमाल किया जाएगा के साथ आप आवेदन की मैपिंग
@Configuration
@EnableAuthorizationServer
protected static class AuthorizationServerConfiguration extends AuthorizationServerConfigurerAdapter {
@Autowired
private AuthorizationEndpoint authorizationEndpoint;
@PostConstruct
public void init() {
authorizationEndpoint.setUserApprovalPage("forward:/oauth/custom_confirm_access");
authorizationEndpoint.setErrorPage("forward:/oauth/custom_error");
}
}
तक पहुँच जाता है क्रमशः एक पुष्टिकरण पृष्ठ और एक त्रुटि पृष्ठ।
पृष्ठ को अनुकूलित करने का कोई और तरीका है। मेरे सेटअप एप्लिकेशन में 'हैंडलर मैपिंग' का ऑर्डर 'org.springframework.security.oauth2.provider.endpoint.FrameworkEndpointHandlerMapping' से कम है और नतीजतन, कस्टम मैपिंग डिफ़ॉल्ट वाले के बाद उठाए जाते हैं और बाद वाले को ओवरराइड नहीं करते हैं? – schatten
मुझे नहीं लगता कि मैं इसका अनुसरण करता हूं। आपको बस/oauth/confirm_access पर संसाधन प्रदान करना होगा (या जो भी आप एंडपॉइंट पथ को अनुकूलित करते हैं)। इससे कोई फर्क नहीं पड़ता कि आप इसे कैसे करते हैं। –
'फ़्रेमव ऑर्क एंडपॉइंट हैंडलर मैपिंग' का ऑर्डर 'ऑर्डर। LOWEST_PRECEDENCE - 2' का ऑर्डर है, लेकिन मेरा कस्टम' RequestMappingHandlerMapping' 'ऑर्डर। LOWEST_PRECEDENCE' का ऑर्डर है, इस प्रकार 'org.springframework.web.servlet.DispatcherServlet # getHandler' चुनता है' फ़्रेम OrkEndpoint हैंडलर मैपिंग मैपिंग और अनुरोध कभी भी मेरे ग्राहक नियंत्रक तक नहीं पहुंचता है। दुर्भाग्यवश बदलते आदेश इस पल में मेरे लिए एक विकल्प नहीं है। मैं जो कर रहा हूं वह 'प्रमाणीकरण Endpoint.setUserApprovalPage (" आगे:/oauth/customer_path ") है; 'प्राधिकरण सर्वर कॉन्फ़िगरेशन' की '@ पोस्टकॉन्स्ट्रक्ट 'विधि में। – schatten