spring-security java config: How to configure Multiple AuthenticationManager instances -
मैं उपयोग करता हूं:
- स्प्रिंग बूट: 1.1.7
- वसंत-सुरक्षा: 4.0.0.एम 2
- वसंत-एफएमके: 4.1.1.RELEASE
सबकुछ जावा कॉन्फ़िग (वसंत-सुरक्षा सहित) के साथ कॉन्फ़िगर किया गया है
मैं एक वेब सर्वर प्रोजेक्ट पर काम कर रहा हूं जहां प्रमाणीकरण: मूल आधार 64 ग्बीबरिश हैडर उपयोगकर्ताओं को प्रमाणित करने के लिए उपयोग किया जाता है।
समस्या यह है कि यूआरआई के आधार पर
प्रमाणीकरण प्रबंधक अलग है (क्योंकि मुझे 2 भिन्न
UserDetailsService की आवश्यकता है।
- / URI1 / ** = & gt; authManager1
- / URI2 / ** = & gt ; AuthManager2
मैंने
WebSecurityConfigurerAdapter के साथ
@Override @Bean (name = "authManager1") के कई एक्सटेंशन की कोशिश की है सार्वजनिक AuthenticationManager authenticationManagerBean () फेंकता अपवाद
<कोड> @Override @Bean (नाम = "authManager2") सार्वजनिक AuthenticationManager authenticationManagerBean () वें पंक्ति अपवाद
कोई लाभ नहीं
मुझे हमेशा मिलता है:
org.springframework.beans.factory.BeanCreationException: बीन बनाने में त्रुटि वर्ग पथ संसाधन [org / springframework / security / config / annotation / web / configuration / WebSecurityConfiguration.class] में परिभाषित नाम 'वसंतसुरक्षाफ़िल्टरचैन' के साथ: बीन्स का तत्काल विफल; नेस्टेड अपवाद org.springframework.beans.factory.BeanDefinitionStoreException: फैक्टरी विधि [सार्वजनिक javax.servlet.filter org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration.springSecurityFilterChain () java.lang.Exception फेंकता अपवाद फेंक दिया ; नेस्टेड अपवाद java.lang.IllegalArgumentException है: केवल के लिए प्रकार इंटरफ़ेस org.springframework.security.authentication.AuthenticationManager एक भी सेम को खोजने के लिए उम्मीद है, लेकिन पाया [authManager1, authManager2]
के बाद से मेरे पास है एकाधिक सुरक्षा फिल्टर जंजीरों मैं विभिन्न सुरक्षा फिल्टर श्रृंखला में विभिन्न प्रमाणीकरण प्रबंधक को इंजेक्षन करने के लिए कैसे "वसंत-सुरक्षा" बता सकता हूँ?
पहले से धन्यवाद पी।
आपके पास एकाधिक http कॉन्फ़िगरेशन तत्व हो सकते हैं, प्रत्येक अपना स्वयं का
AuthenticationManager । ऐसा नहीं है कि दिखाई देगा:
@Configuration @EnableWebSecurity सार्वजनिक वर्ग SecurityConfig {@Bean निजी AuthenticationManager authenticationManager1 () {// परिभाषित करता है पहले AuthenticationManager लौट authenticationManager; } @ बीन निजी प्रमाणीकरण प्रबंधक प्रमाणन प्रबंधक 2 () {// परिभाषित करता है दूसरा प्रमाणीकरण प्रबंधक वापसी प्रमाणीकरण प्रबंधक; } @ कॉन्फ़िगरेशन @ ऑडर (1) सार्वजनिक स्थिर वर्ग Uri1ApiConfigurationAdapter WebSecurityConfigurerAdapter {@Autowired @Qualifier (authenticationManager1) निजी authManager1; @ ओवरराइड संरक्षित प्रमाणीकरण प्रबंधक प्रमाणन प्रबंधक () {return authManager1; } संरक्षित शून्य कॉन्फ़िगर (HttpSecurity http) अपवाद {http .antMatcher ( "/ URI1 / **") ...}} @Configuration @Order (2) सार्वजनिक स्थैतिक कक्षा Uri2ApiConfigurationAdapter फैली WebSecurityConfigurerAdapter {@Autowired @Qualifier (authenticationManager2) निजी फेंकता authManager2; @ ओवरराइड संरक्षित प्रमाणीकरण प्रबंधक प्रमाणन प्रबंधक () {authManager2; } संरक्षित शून्य विन्यास (एचटीटीपीएक्वायरी http) अपवाद {http .antMatcher ("/ URI2 / **") ...}}}
Comments
Post a Comment