My requirement is to provide:
- User password based authentication.
- Open Authentication Based Authentication
- Url-based authentication (it has its own sso impl we have)
in the same project.
I tried connecting Spring protection to an existing project as (was omitted to simplify the code):
<?xml version="1.0" encoding="UTF-8"?> <beans:beans xmlns="http://www.springframework.org/schema/security" xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.1.xsd"> <http auto-config="false"> <remember-me user-service-ref="rememberMeUserService" key="some custom key" /> <intercept-url pattern='/mainApplication/Main screen.html' access="ROLE_ADMIN"/> <intercept-url pattern='/**' filters="none"/> <openid-login authentication-failure-url="/Login.html?error=true" default-target-url="/mainApplication/Main screen.html" user-service-ref="openIdUserService"/> <form-login login-page="/Login.html" authentication-failure-url="/Login.html?error=true" always-use-default-target="true" default-target-url="/mainApplication/Main screen.html"/> </http> <beans:bean id="rememberMeUserService" class="mypackage.CustomUserService"> <beans:property name="usersService" ref="usersService"></beans:property> </beans:bean> <beans:bean id="entryPoint" class="org.springframework.security.ui.webapp.AuthenticationProcessingFilterEntryPoint"> <beans:property name="loginFormUrl" value="/Login.html" /> </beans:bean> <authentication-manager alias="authenticationManager"/> <beans:bean id="MyCustomAuthenticationProvider" class="mypackage.CustomAuthenticationProvider"> <custom-authentication-provider /> <beans:property name="usersService" ref="usersService"></beans:property> </beans:bean> <beans:bean id="openIdAuthenticationProvider" class="org.springframework.security.providers.openid.OpenIDAuthenticationProvider"> <custom-authentication-provider /> <beans:property name="userDetailsService" ref="openIdUserService"/> </beans:bean> <beans:bean id="openIdUserService" class="mypackage.OpenIDUserDetailsService"> <beans:property name="usersService" ref="usersService"/> </beans:bean> </beans:beans>
as mentioned above, I need to track the form URL: / myApp / customLogin / 12345, where 1235 is the token key that we originally used (to simplify the code was deleted)
<servlet-mapping> <servlet-name>mySSOCapture</servlet-name> <url-pattern>/myApp/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/MyServlet</url-pattern> </servlet-mapping>
What should I do to enable Spring protection to help me manage this third authentication scheme?
The question arises: Can I have many authentication providers in one project? if so, how can they be matched with different functionalities (for example, one that provides authentication based on URLs, one of which provides offline authentication, etc.)?
java spring spring-security configuration
Salvin francis
source share