Code: SpringBeans.xml
<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-3.0.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsd">
<global-method-security secured-annotations="enabled">
</global-method-security>
<http auto-config="false">
<intercept-url pattern="/login.do*" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<intercept-url pattern="/**" access="ROLE_USER" />
<form-login login-page='/login.do' default-target-url='/account/search.do' />
<custom-filter ref="autoLoginFilter" position="PRE_AUTH_FILTER" />
<logout logout-url="/logout.do" logout-success-url="/login.do"/>
</http>
<beans:bean id="autoLoginFilter" class="com.pg.backoffice.reports.auth.AutoLoginFilter">
<beans:property name="authenticationManager" ref="authenticationManager" />
</beans:bean>
<beans:bean id="preauthAuthProvider"
class="org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationProvider">
<beans:property name="preAuthenticatedUserDetailsService">
<beans:bean class="com.pg.backoffice.reports.auth.RsaAuthenticationUserDetailsService"></beans:bean>
</beans:property>
<beans:property name="order" value="1"/>
</beans:bean>
<authentication-manager alias="authenticationManager" >
<authentication-provider ref="preauthAuthProvider" ></authentication-provider>
<authentication-provider >
<user-service id="rsaUser">
<user name="admin" password="admin" authorities="ROLE_SUPERVISOR,ROLE_USER, ROLE_TELLER" />
<user name="root" password="root" authorities="ROLE_USER,ROLE_TELLER" />
</user-service>
</authentication-provider>
</authentication-manager>
</beans:beans>
Code: AutoLoginFilter
public class AutoLoginFilter extends AbstractPreAuthenticatedProcessingFilter {
@Override
protected Object getPreAuthenticatedCredentials(HttpServletRequest request) {
String user = request.getParameter("user");
if (StringUtils.hasLength(user)) {
return "ROLE_SUPERVISOR";
} else
return null;
}
@Override
protected Object getPreAuthenticatedPrincipal(HttpServletRequest request) {
System.out.println("getPreAuthenticatedCredentials: " + request.getRequestURI());
String user = request.getParameter("user");
if (StringUtils.hasLength(user)) {
return user;
} else
return null;
}
}
Code:
public class RsaAuthenticationUserDetailsService implements AuthenticationUserDetailsService{
public UserDetails loadUserDetails(Authentication user) throws UsernameNotFoundException {
if (user.getPrincipal() != null) {
Collection<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>();
authorities.add(new GrantedAuthorityImpl("ROLE_USER"));
return new User((String) user.getPrincipal(), "none", true, true, true, true, authorities);
}
return null;
}
}