From 5c9009a39129af189bf5d8dcb0b09d0fe13098b8 Mon Sep 17 00:00:00 2001 From: Ben Alex Date: Mon, 3 Dec 2007 07:44:32 +0000 Subject: [PATCH] Use new SpringSecurityFilter so compatible with enhanced FilterChainProxy class. --- .../anonymous/AnonymousProcessingFilter.java | 38 ++++++------------- 1 file changed, 12 insertions(+), 26 deletions(-) diff --git a/core/src/main/java/org/springframework/security/providers/anonymous/AnonymousProcessingFilter.java b/core/src/main/java/org/springframework/security/providers/anonymous/AnonymousProcessingFilter.java index 8871469323..c4384b5911 100644 --- a/core/src/main/java/org/springframework/security/providers/anonymous/AnonymousProcessingFilter.java +++ b/core/src/main/java/org/springframework/security/providers/anonymous/AnonymousProcessingFilter.java @@ -21,6 +21,8 @@ import org.springframework.security.context.SecurityContextHolder; import org.springframework.security.ui.AuthenticationDetailsSource; import org.springframework.security.ui.AuthenticationDetailsSourceImpl; +import org.springframework.security.ui.FilterChainOrderUtils; +import org.springframework.security.ui.SpringSecurityFilter; import org.springframework.security.userdetails.memory.UserAttribute; @@ -33,13 +35,11 @@ import org.springframework.util.Assert; import java.io.IOException; -import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; /** @@ -50,7 +50,7 @@ import javax.servlet.http.HttpServletRequest; * @author Ben Alex * @version $Id$ */ -public class AnonymousProcessingFilter implements Filter, InitializingBean { +public class AnonymousProcessingFilter extends SpringSecurityFilter implements InitializingBean { //~ Static fields/initializers ===================================================================================== private static final Log logger = LogFactory.getLog(AnonymousProcessingFilter.class); @@ -80,14 +80,11 @@ public class AnonymousProcessingFilter implements Filter, InitializingBean { * doesn't already have some other Authentication inside it), or false if no * anonymous token should be setup for this request */ - protected boolean applyAnonymousForThisRequest(ServletRequest request) { + protected boolean applyAnonymousForThisRequest(HttpServletRequest request) { return true; } - protected Authentication createAuthentication(ServletRequest request) { - Assert.isInstanceOf(HttpServletRequest.class, request, - "ServletRequest must be an instance of HttpServletRequest"); - + protected Authentication createAuthentication(HttpServletRequest request) { AnonymousAuthenticationToken auth = new AnonymousAuthenticationToken(key, userAttribute.getPassword(), userAttribute.getAuthorities()); auth.setDetails(authenticationDetailsSource.buildDetails((HttpServletRequest) request)); @@ -95,13 +92,7 @@ public class AnonymousProcessingFilter implements Filter, InitializingBean { return auth; } - /** - * Does nothing - we reply on IoC lifecycle services instead. - */ - public void destroy() {} - - public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) - throws IOException, ServletException { + protected void doFilterHttp(HttpServletRequest request,HttpServletResponse response, FilterChain chain) throws IOException, ServletException { boolean addedToken = false; if (applyAnonymousForThisRequest(request)) { @@ -129,7 +120,11 @@ public class AnonymousProcessingFilter implements Filter, InitializingBean { SecurityContextHolder.getContext().setAuthentication(null); } } - } + } + + public int getOrder() { + return FilterChainOrderUtils.ANON_PROCESSING_FILTER_ORDER; + } public String getKey() { return key; @@ -139,15 +134,6 @@ public class AnonymousProcessingFilter implements Filter, InitializingBean { return userAttribute; } - /** - * Does nothing - we reply on IoC lifecycle services instead. - * - * @param ignored not used - * - * @throws ServletException DOCUMENT ME! - */ - public void init(FilterConfig ignored) throws ServletException {} - public boolean isRemoveAfterRequest() { return removeAfterRequest; }