Changed Ntlm filter to use SpringSecurityFilter base class.
This commit is contained in:
parent
31b65dde52
commit
4f3a1739aa
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue