diff --git a/core/src/main/java/org/springframework/security/ui/FilterChainOrderUtils.java b/core/src/main/java/org/springframework/security/ui/FilterChainOrderUtils.java index 14ffbf8e3d..9244c8162b 100644 --- a/core/src/main/java/org/springframework/security/ui/FilterChainOrderUtils.java +++ b/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; } diff --git a/ntlm/src/main/java/org/springframework/security/ui/ntlm/HttpFilter.java b/ntlm/src/main/java/org/springframework/security/ui/ntlm/HttpFilter.java deleted file mode 100755 index f36c237bda..0000000000 --- a/ntlm/src/main/java/org/springframework/security/ui/ntlm/HttpFilter.java +++ /dev/null @@ -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)); - } - -} diff --git a/ntlm/src/main/java/org/springframework/security/ui/ntlm/NtlmProcessingFilter.java b/ntlm/src/main/java/org/springframework/security/ui/ntlm/NtlmProcessingFilter.java index 9124c7297b..12b9cea150 100755 --- a/ntlm/src/main/java/org/springframework/security/ui/ntlm/NtlmProcessingFilter.java +++ b/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; + } }