1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.jetspeed.security.impl.ntlm;
18
19 import java.io.IOException;
20
21 import javax.servlet.Filter;
22 import javax.servlet.FilterChain;
23 import javax.servlet.FilterConfig;
24 import javax.servlet.ServletException;
25 import javax.servlet.ServletRequest;
26 import javax.servlet.ServletResponse;
27 import javax.servlet.http.HttpServletRequest;
28 import javax.servlet.http.HttpServletResponse;
29 /***
30 * <code>NtlmHttpServletRequestFilter</code> can be used in combination with an Ntml authentication filter (jCIFS).
31 * The <code>NtlmHttpServletRequestFilter</code> <b>must</b> be configured after the jCIFS filter in web.xml. The
32 * NtlmHttpServletRequestFilter wraps the jCIFS HttpServletRequest with a <code>NtlmHttpServletRequestWrapper</code>.
33 * This is done to control which principal / remoteUser is returned by the request.
34 * If a fallback authentication method is used (e.g. container-based form authentication) then you must
35 * use the filter param <code>org.apache.jetspeed.security.ntlm.ignoreUrls</code> in web.xml to specify the urls for
36 * which the Ntlm principal / remoteUser should be ignored.
37 *
38 * @see NtlmHttpServletRequestWrapper
39 * @author <a href="mailto:d.dam@hippo.nl">Dennis Dam</a>
40 * @version $Id$
41 */
42 public class NtlmHttpServletRequestFilter implements Filter {
43
44 private String ignoreNtlmUrls;
45
46 public void destroy() {
47 }
48
49 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,
50 ServletException {
51 HttpServletRequest req = (HttpServletRequest)request;
52 HttpServletResponse resp = (HttpServletResponse)response;
53 chain.doFilter( new NtlmHttpServletRequestWrapper( req, ignoreNtlmUrls ), resp );
54 }
55
56 public void init(FilterConfig config) throws ServletException {
57 ignoreNtlmUrls = config.getInitParameter("org.apache.jetspeed.security.ntlm.ignoreUrls");
58 }
59
60 }