|
|
|
|
@ -27,141 +27,20 @@
@@ -27,141 +27,20 @@
|
|
|
|
|
<logout logout-success-url="/index.jsp"/> |
|
|
|
|
</http> |
|
|
|
|
|
|
|
|
|
<!-- |
|
|
|
|
<bean id="filterChainProxy" class="org.springframework.security.util.FilterChainProxy"> |
|
|
|
|
<property name="filterInvocationDefinitionSource"> |
|
|
|
|
<value><![CDATA[ |
|
|
|
|
CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON |
|
|
|
|
PATTERN_TYPE_APACHE_ANT |
|
|
|
|
/**=httpSessionContextIntegrationFilter,logoutFilter,authenticationProcessingFilter,basicProcessingFilter,securityContextHolderAwareRequestFilter,rememberMeProcessingFilter,anonymousProcessingFilter,exceptionTranslationFilter,filterInvocationInterceptor,switchUserProcessingFilter |
|
|
|
|
]]></value> |
|
|
|
|
</property> |
|
|
|
|
</bean> |
|
|
|
|
|
|
|
|
|
<bean id="basicProcessingFilter" class="org.springframework.security.ui.basicauth.BasicProcessingFilter"> |
|
|
|
|
<property name="authenticationManager"><ref local="authenticationManager"/></property> |
|
|
|
|
<property name="authenticationEntryPoint"><ref local="basicProcessingFilterEntryPoint"/></property> |
|
|
|
|
</bean> |
|
|
|
|
|
|
|
|
|
<bean id="basicProcessingFilterEntryPoint" class="org.springframework.security.ui.basicauth.BasicProcessingFilterEntryPoint"> |
|
|
|
|
<property name="realmName" value="Contacts Realm"/> |
|
|
|
|
</bean> |
|
|
|
|
|
|
|
|
|
<bean id="anonymousProcessingFilter" class="org.springframework.security.providers.anonymous.AnonymousProcessingFilter"> |
|
|
|
|
<property name="key" value="foobar"/> |
|
|
|
|
<property name="userAttribute" value="anonymousUser,ROLE_ANONYMOUS"/> |
|
|
|
|
</bean> |
|
|
|
|
|
|
|
|
|
<bean id="anonymousAuthenticationProvider" class="org.springframework.security.providers.anonymous.AnonymousAuthenticationProvider"> |
|
|
|
|
<property name="key" value="foobar"/> |
|
|
|
|
</bean> |
|
|
|
|
|
|
|
|
|
<bean id="httpSessionContextIntegrationFilter" class="org.springframework.security.context.HttpSessionContextIntegrationFilter"/> |
|
|
|
|
|
|
|
|
|
<bean id="rememberMeProcessingFilter" class="org.springframework.security.ui.rememberme.RememberMeProcessingFilter"> |
|
|
|
|
<property name="authenticationManager"><ref local="authenticationManager"/></property> |
|
|
|
|
<property name="rememberMeServices"><ref local="rememberMeServices"/></property> |
|
|
|
|
</bean> |
|
|
|
|
|
|
|
|
|
<bean id="rememberMeServices" class="org.springframework.security.ui.rememberme.TokenBasedRememberMeServices"> |
|
|
|
|
<property name="userDetailsService"><ref local="jdbcDaoImpl"/></property> |
|
|
|
|
<property name="key" value="springRocks"/> |
|
|
|
|
</bean> |
|
|
|
|
|
|
|
|
|
<bean id="rememberMeAuthenticationProvider" class="org.springframework.security.providers.rememberme.RememberMeAuthenticationProvider"> |
|
|
|
|
<property name="key" value="springRocks"/> |
|
|
|
|
</bean> |
|
|
|
|
|
|
|
|
|
<bean id="logoutFilter" class="org.springframework.security.ui.logout.LogoutFilter"> |
|
|
|
|
<constructor-arg value="/index.jsp"/> |
|
|
|
|
<constructor-arg> |
|
|
|
|
<list> |
|
|
|
|
<ref bean="rememberMeServices"/> |
|
|
|
|
<bean class="org.springframework.security.ui.logout.SecurityContextLogoutHandler"/> |
|
|
|
|
</list> |
|
|
|
|
</constructor-arg> |
|
|
|
|
</bean> |
|
|
|
|
|
|
|
|
|
<bean id="securityContextHolderAwareRequestFilter" class="org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter"/> |
|
|
|
|
|
|
|
|
|
<bean id="exceptionTranslationFilter" class="org.springframework.security.ui.ExceptionTranslationFilter"> |
|
|
|
|
<property name="authenticationEntryPoint"><ref local="authenticationProcessingFilterEntryPoint"/></property> |
|
|
|
|
<property name="accessDeniedHandler"> |
|
|
|
|
<bean class="org.springframework.security.ui.AccessDeniedHandlerImpl"> |
|
|
|
|
<property name="errorPage" value="/accessDenied.jsp"/> |
|
|
|
|
</bean> |
|
|
|
|
</property> |
|
|
|
|
</bean> |
|
|
|
|
|
|
|
|
|
<bean id="authenticationProcessingFilter" class="org.springframework.security.ui.webapp.AuthenticationProcessingFilter"> |
|
|
|
|
<property name="authenticationManager"><ref bean="authenticationManager"/></property> |
|
|
|
|
<property name="authenticationFailureUrl"><value>/acegilogin.jsp?login_error=1</value></property> |
|
|
|
|
<property name="defaultTargetUrl"><value>/</value></property> |
|
|
|
|
<property name="filterProcessesUrl"><value>/j_spring_security_check</value></property> |
|
|
|
|
<property name="rememberMeServices"><ref local="rememberMeServices"/></property> |
|
|
|
|
</bean> |
|
|
|
|
|
|
|
|
|
<bean id="authenticationProcessingFilterEntryPoint" class="org.springframework.security.ui.webapp.AuthenticationProcessingFilterEntryPoint"> |
|
|
|
|
<property name="loginFormUrl"><value>/acegilogin.jsp</value></property> |
|
|
|
|
<property name="forceHttps"><value>false</value></property> |
|
|
|
|
</bean> |
|
|
|
|
|
|
|
|
|
<bean id="filterInvocationInterceptor" class="org.springframework.security.intercept.web.FilterSecurityInterceptor"> |
|
|
|
|
<property name="authenticationManager"><ref bean="authenticationManager"/></property> |
|
|
|
|
<property name="accessDecisionManager"><ref local="httpRequestAccessDecisionManager"/></property> |
|
|
|
|
<property name="objectDefinitionSource"> |
|
|
|
|
<value><![CDATA[ |
|
|
|
|
CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON |
|
|
|
|
PATTERN_TYPE_APACHE_ANT |
|
|
|
|
/index.jsp=ROLE_ANONYMOUS,ROLE_USER |
|
|
|
|
/hello.htm=ROLE_ANONYMOUS,ROLE_USER |
|
|
|
|
/logoff.jsp=ROLE_ANONYMOUS,ROLE_USER |
|
|
|
|
/switchuser.jsp=ROLE_SUPERVISOR |
|
|
|
|
/j_spring_security_switch_user=ROLE_SUPERVISOR |
|
|
|
|
/acegilogin.jsp*=ROLE_ANONYMOUS,ROLE_USER |
|
|
|
|
/**=ROLE_USER |
|
|
|
|
]]></value> |
|
|
|
|
</property> |
|
|
|
|
</bean> |
|
|
|
|
|
|
|
|
|
--> |
|
|
|
|
|
|
|
|
|
<authentication-provider> |
|
|
|
|
<password-encoder hash="md5"/> |
|
|
|
|
<jdbc-user-service data-source-ref="dataSource"/> |
|
|
|
|
</authentication-provider> |
|
|
|
|
<!-- |
|
|
|
|
<bean id="jdbcDaoImpl" class="org.springframework.security.userdetails.jdbc.JdbcDaoImpl"> |
|
|
|
|
<property name="dataSource" ref="dataSource"/> |
|
|
|
|
</bean> |
|
|
|
|
|
|
|
|
|
<bean id="passwordEncoder" class="org.springframework.security.providers.encoding.Md5PasswordEncoder"/> |
|
|
|
|
|
|
|
|
|
<bean id="daoAuthenticationProvider" class="org.springframework.security.providers.dao.DaoAuthenticationProvider"> |
|
|
|
|
<property name="userDetailsService"><ref local="jdbcDaoImpl"/></property> |
|
|
|
|
<property name="passwordEncoder"><ref local="passwordEncoder"/></property> |
|
|
|
|
</bean> |
|
|
|
|
--> |
|
|
|
|
|
|
|
|
|
<!-- Automatically receives AuthenticationEvent messages --> |
|
|
|
|
<b:bean id="loggerListener" class="org.springframework.security.event.authentication.LoggerListener"/> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<b:bean id="httpRequestAccessDecisionManager" class="org.springframework.security.vote.AffirmativeBased"> |
|
|
|
|
<b:property name="allowIfAllAbstainDecisions" value="false" /> |
|
|
|
|
<b:property name="decisionVoters"> |
|
|
|
|
<b:list> |
|
|
|
|
<b:ref bean="roleVoter"/> |
|
|
|
|
</b:list> |
|
|
|
|
</b:property> |
|
|
|
|
</b:bean> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- Filter used to switch the user context. Note: the switch and exit url must be secured |
|
|
|
|
based on the role granted the ability to 'switch' to another user --> |
|
|
|
|
<!-- In this example 'rod' has ROLE_SUPERVISOR that can switch to regular ROLE_USER(s) --> |
|
|
|
|
<b:bean id="switchUserProcessingFilter" class="org.springframework.security.ui.switchuser.SwitchUserProcessingFilter" autowire="byType"> |
|
|
|
|
<b:property name="targetUrl" value="/spring-security-sample-contacts-filter/secure/index.htm"/> |
|
|
|
|
<custom-filter after="SWITCH_USER_FILTER"/> |
|
|
|
|
<b:property name="targetUrl" value="/secure/index.htm"/> |
|
|
|
|
</b:bean> |
|
|
|
|
|
|
|
|
|
</b:beans> |
|
|
|
|
|