package com.mossle.security.client; import java.io.IOException; import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import com.mossle.security.util.SpringSecurityUtils; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.web.filter.GenericFilterBean; public class AutoLoginFilter extends GenericFilterBean { private UserDetailsService userDetailsService; private boolean enabled = false; private String defaultUserName; public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { if (enabled && (SpringSecurityUtils.getCurrentUser() == null)) { UserDetails userDetails = userDetailsService .loadUserByUsername(defaultUserName); if (userDetails == null) { throw new UsernameNotFoundException(defaultUserName); } SpringSecurityUtils.saveUserDetailsToContext(userDetails, (HttpServletRequest) request); } chain.doFilter(request, response); } public void setUserDetailsService(UserDetailsService userDetailsService) { this.userDetailsService = userDetailsService; } public boolean isEnabled() { return enabled; } public void setEnabled(boolean enabled) { this.enabled = enabled; } public String getDefaultUserName() { return defaultUserName; } public void setDefaultUserName(String defaultUserName) { this.defaultUserName = defaultUserName; } }