Changed Ntlm filter to use SpringSecurityFilter base class.

This commit is contained in:
Luke Taylor 2007-11-24 20:08:17 +00:00
parent 31b65dde52
commit 4f3a1739aa
3 changed files with 9 additions and 65 deletions

View File

@ -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;
}

View File

@ -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));
}
}

View File

@ -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;
}
}