Quellcode durchsuchen

Changed Ntlm filter to use SpringSecurityFilter base class.

Luke Taylor vor 18 Jahren
Ursprung
Commit
4f3a1739aa

+ 2 - 2
core/src/main/java/org/springframework/security/ui/FilterChainOrderUtils.java

@@ -29,6 +29,6 @@ public class FilterChainOrderUtils {
     public static final int ANON_PROCESSING_FILTER_ORDER               = FILTER_CHAIN_FIRST + INTERVAL * 10;
     public static final int SWITCH_USER_FILTER_ORDER                   = FILTER_CHAIN_FIRST + INTERVAL * 11;
     public static final int EXCEPTION_TRANSLATION_FILTER_ORDER         = FILTER_CHAIN_FIRST + INTERVAL * 12;
-    public static final int FILTER_SECURITY_INTERCEPTOR_ORDER          = FILTER_CHAIN_FIRST + INTERVAL * 13;
-
+    public static final int NTLM_FILTER_ORDER                          = FILTER_CHAIN_FIRST + INTERVAL * 13;
+    public static final int FILTER_SECURITY_INTERCEPTOR_ORDER          = FILTER_CHAIN_FIRST + INTERVAL * 14;
 }

+ 0 - 61
ntlm/src/main/java/org/springframework/security/ui/ntlm/HttpFilter.java

@@ -1,61 +0,0 @@
-/* Copyright 2004-2007 Acegi Technology Pty Limited
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.security.ui.ntlm;
-
-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;
-
-public abstract class HttpFilter implements Filter {
-
-	public void init(FilterConfig config) throws ServletException {}
-
-	public void destroy() {}
-
-	public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain) throws IOException, ServletException {
-		if (!(request instanceof HttpServletRequest)) {
-			throw new ServletException("Can only process HttpServletRequest");
-		}
-
-		if (!(response instanceof HttpServletResponse)) {
-			throw new ServletException("Can only process HttpServletResponse");
-		}
-
-		this.doFilter((HttpServletRequest) request, (HttpServletResponse) response, chain);
-
-		chain.doFilter(request, response);
-	}
-
-//	*************************** Protected Methods ****************************
-
-	protected abstract void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException;
-
-	protected void sendRedirect(final HttpServletRequest request, final HttpServletResponse response, String url) throws IOException {
-		if (!url.startsWith("http://") && !url.startsWith("https://")) {
-			url = request.getContextPath() + url;
-		}
-
-		response.sendRedirect(response.encodeRedirectURL(url));
-	}
-
-}

+ 7 - 2
ntlm/src/main/java/org/springframework/security/ui/ntlm/NtlmProcessingFilter.java

@@ -24,7 +24,9 @@ import org.springframework.security.InsufficientAuthenticationException;
 import org.springframework.security.context.SecurityContextHolder;
 import org.springframework.security.providers.UsernamePasswordAuthenticationToken;
 import org.springframework.security.providers.anonymous.AnonymousAuthenticationToken;
+import org.springframework.security.ui.SpringSecurityFilter;
 import org.springframework.security.ui.WebAuthenticationDetails;
+import org.springframework.security.ui.FilterChainOrderUtils;
 import org.springframework.security.ui.webapp.AuthenticationProcessingFilter;
 import org.springframework.beans.factory.InitializingBean;
 import org.springframework.util.Assert;
@@ -77,7 +79,7 @@ import java.util.Properties;
  * @author Edward Smith
  * @version $Id$
  */
-public class NtlmProcessingFilter extends HttpFilter implements InitializingBean {
+public class NtlmProcessingFilter extends SpringSecurityFilter implements InitializingBean {
 	//~ Static fields/initializers =====================================================================================
 
 	private static Log	logger = LogFactory.getLog(NtlmProcessingFilter.class);
@@ -293,7 +295,7 @@ public class NtlmProcessingFilter extends HttpFilter implements InitializingBean
 		this.retryOnAuthFailure = retryOnFailure;
 	}
 
-	protected void doFilter(final HttpServletRequest request, final HttpServletResponse response, final FilterChain chain) throws IOException {
+	protected void doFilterHttp(final HttpServletRequest request, final HttpServletResponse response, final FilterChain chain) throws IOException {
 		final HttpSession session = request.getSession();
 		Integer ntlmState = (Integer) session.getAttribute(STATE_ATTR);
 
@@ -494,4 +496,7 @@ public class NtlmProcessingFilter extends HttpFilter implements InitializingBean
         return SmbSession.getChallenge(dcAddress);
 	}
 
+    public int getOrder() {
+        return FilterChainOrderUtils.NTLM_FILTER_ORDER;
+    }
 }