How can I create two http security configurations with java based config? -
XML विन्यास में मैं निम्नलिखित बना सकता हूं:
& lt; सुरक्षा: http पैटर्न = "/ api / **" create-session = "कभी नहीं" उपयोग-अभिव्यक्ति = "सत्य" & gt; & Lt; सुरक्षा: http-basic प्रविष्टि-बिंदु-रिफ = "xBasicAuthenticationEntryPoint" / & gt; & Lt; सुरक्षा: सत्र प्रबंधन / & gt; & Lt; सुरक्षा: अवरोधन- url पैटर्न = "/ परीक्षण / **" access = "isAuthenticated ()" / & gt; & Lt; सुरक्षा: अवरोधन- url पैटर्न = "/ api / **" access = "isAuthenticated ()" / & gt; & Lt; / सुरक्षा: http & gt; & Lt; सुरक्षा: http auto-config = "true" उपयोग-अभिव्यक्ति = "सच" realm = "ACME" & gt; & Lt; सुरक्षा: अवरोधन- url पैटर्न = "/ favicon.ico" access = "permitAll" / & gt; & Lt; सुरक्षा: अवरोधन- url पैटर्न = "/ स्थिर / **" access = "permitAll" / & gt; & Lt; सुरक्षा: अवरोधन- url पैटर्न = "/ त्रुटि / **" access = "permitAll" / & gt; & Lt; सुरक्षा: अवरोधन- url पैटर्न = "/" access = "permitAll" / & gt; & Lt; सुरक्षा: अवरोधन- url पैटर्न = "/ लॉगिन" access = "permitAll" / & gt; & Lt; सुरक्षा: अवरोधन- url पैटर्न = "/ लॉगआउट" access = "isAuthenticated ()" / & gt; & Lt; सुरक्षा: फ़ॉर्म-लॉगिन लॉगिन पृष्ठ = '/ लॉगिन' प्रमाणीकरण-विफलता-url = "/ लॉगिन / त्रुटि" /> & Lt; सुरक्षा: लॉगआउट लॉगआउट- url = "/ लॉगआउट" लॉगआउट-सफलता-url = "/" / & gt; & Lt; / सुरक्षा: http & gt; यह सभी कॉल को / api / ** के लिए उपयोगकर्ता को प्रमाणित करने का प्रयास करने की अनुमति नहीं देगा यदि कोई सत्र नहीं है। मैं जावा आधारित कॉन्फ़िगरेशन के साथ यह एक ही कॉन्फ़िगरेशन कैसे बना सकता हूं?
मेरा WebSecurityConfigurerAdapter # configure (HttpSecurity) विधि निम्नानुसार दिखती है: @ ओवरराइड संरक्षित शून्य कॉन्फ़िगर (HttpSecurity http) अपवाद {http.addFilter (switchUserFilter ()) .authorizeRequests () .antMatchers ( "/")) .antMatchers ( "/ स्थिर / **") फेंकता है। permitAll (। permitAll () .anyRequest () .authenticated () .और ()। formLogin () .loginPage ( "/ लॉगिन") .permitAll () .defaultSuccessUrl ( "/") .और ()। लॉगआउट () .logoutUrl ( "/ लॉगआउट")। logoutSuccessUrl ( "/"); }
अच्छी तरह से यह स्प्रिंग सुरक्षा संदर्भ मैनुअल में स्पष्ट है, आप बहुत से @ कॉन्फ़िगरेशन एनोटेट किए गए आंतरिक कक्षाएं एक @ ऑडर () के साथ निर्दिष्ट करने के लिए एनोटेशन जो पहले जांच की जाती हैं अपने उदाहरण में यह दिखाई देगा: @Order (1) @Configuration निजी स्थिर वर्ग ApiSecurityConfigurationAdapter फैली WebSecurityConfigurerAdapter {@Override शून्य कॉन्फ़िगर संरक्षित (HttpSecurity http) अपवाद फेंकता {http .antMatcher ( "/ एपीआई / ** ") .sessionManagement () sessionCreationPolicy (SessionCreationPolicy.NEVER) .and.httpBasic () authenticationEntryPoint (xBasicAuthenticationEntryPoint) .and.authorizeRequests () .anyRequest () प्रमाणीकृत ()।।। }} @ कॉन्फ़िगरेशन निजी स्टैटिक क्लास सामान्य सिक्योरिटी कॉन्फ़िगरेशन एडेप्टर वेबसैक्योरिटी कॉन्फ़िगरर एडेप्टर विस्तारित करता है {@ ओवरराइड संरक्षित शून्य कॉन्फ़िगर करें (एचटीटीपीएक्वायरी http) अपवाद फेंकता है {http.addFilter (स्विचयूसरफ़िल्टर ()) .अधिकृत विन्यास () .एटमैटर्स ("/") .परमिट सभी () .एटमैटर्स (" / Static / ** ")। PermitAll () .anyRequest ()। प्रमाणीकृत () .और ()। FormLogin () .loginPage (" / लॉगिन ") .permitAll () .defaultSuccessUrl (" / ") .और () .logout () .logoutUrl ("/ लॉगआउट") .logoutSuccessUrl ("/"); }}
Comments
Post a Comment