1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.hr;
17
18 import java.io.IOException;
19
20 import javax.servlet.Filter;
21 import javax.servlet.FilterChain;
22 import javax.servlet.FilterConfig;
23 import javax.servlet.ServletException;
24 import javax.servlet.ServletRequest;
25 import javax.servlet.ServletResponse;
26 import javax.servlet.http.HttpServletRequest;
27 import javax.servlet.http.HttpServletRequestWrapper;
28
29 import org.apache.commons.lang.StringUtils;
30 import org.kuali.rice.krad.web.filter.AutoLoginFilter;
31
32
33
34
35
36
37
38
39
40
41
42
43
44 public class TestAutoLoginFilter implements Filter {
45 public static final String USER_PARAM_NAME = "autouser";
46 public static String OVERRIDE_ID = "";
47
48 private FilterConfig filterConfig;
49
50
51 public void init(FilterConfig config) throws ServletException {
52 this.filterConfig = config;
53 }
54
55
56 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
57 String username = StringUtils.isBlank(OVERRIDE_ID) ? filterConfig.getInitParameter(USER_PARAM_NAME) : OVERRIDE_ID;
58 if (username == null) {
59 throw new IllegalStateException("the " + USER_PARAM_NAME + " param is not set");
60 }
61
62 chain.doFilter(new HttpServletRequestWrapper((HttpServletRequest) request) {
63 @Override
64 public String getRemoteUser() {
65 String username = TestAutoLoginFilter.OVERRIDE_ID;
66 if (StringUtils.isBlank(username)) {
67 username = TestAutoLoginFilter.this.filterConfig.getInitParameter(USER_PARAM_NAME);
68 }
69 return username;
70 }
71 }, response);
72 }
73
74
75 public void destroy() {
76 this.filterConfig = null;
77 }
78 }