Skip to content

Commit 09e63aa

Browse files
committed
[EZAF-2078] MultimechsAuthFilter init error (apache#1094)
Co-authored-by: Egor Krivokon <>
1 parent df0690e commit 09e63aa

File tree

2 files changed

+76
-0
lines changed

2 files changed

+76
-0
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package org.apache.spark.ui.filters;
2+
3+
import org.apache.commons.collections.iterators.IteratorEnumeration;
4+
5+
import javax.servlet.FilterConfig;
6+
import javax.servlet.ServletContext;
7+
import java.util.Enumeration;
8+
import java.util.HashMap;
9+
import java.util.Map;
10+
11+
public class FilterConfigWrapper implements FilterConfig {
12+
13+
private Map<String, String> conf = new HashMap<>();
14+
private ServletContext servletContext;
15+
private String filterName;
16+
17+
@Override
18+
public String getFilterName() {
19+
return filterName;
20+
}
21+
22+
public void setFilterName(String filterName) {
23+
this.filterName = filterName;
24+
}
25+
26+
@Override
27+
public ServletContext getServletContext() {
28+
return servletContext;
29+
}
30+
31+
public void setServletContext(ServletContext servletContext) {
32+
this.servletContext = servletContext;
33+
}
34+
35+
@Override
36+
public String getInitParameter(String s) {
37+
return conf.get(s);
38+
}
39+
40+
public void setInitParameter(String key, String value) {
41+
conf.put(key, value);
42+
}
43+
44+
@Override
45+
public Enumeration<String> getInitParameterNames() {
46+
return new IteratorEnumeration(conf.keySet().iterator());
47+
}
48+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package org.apache.spark.ui.filters;
2+
3+
import org.apache.hadoop.security.authentication.server.AuthenticationFilter;
4+
5+
import javax.servlet.FilterConfig;
6+
import javax.servlet.ServletException;
7+
import java.util.Enumeration;
8+
9+
public class MultiauthWebUiFilter extends AuthenticationFilter {
10+
11+
@Override
12+
public void init(FilterConfig filterConfig) throws ServletException {
13+
FilterConfigWrapper filterConfigWrapper = new FilterConfigWrapper();
14+
Enumeration<String> parameterNames = filterConfig.getInitParameterNames();
15+
filterConfigWrapper.setFilterName(filterConfig.getFilterName());
16+
filterConfigWrapper.setServletContext(filterConfig.getServletContext());
17+
while (parameterNames.hasMoreElements()) {
18+
String key = parameterNames.nextElement();
19+
String value = filterConfig.getInitParameter(key);
20+
filterConfigWrapper.setInitParameter(key, value);
21+
}
22+
23+
filterConfigWrapper.setInitParameter(AuthenticationFilter.AUTH_TYPE,
24+
"org.apache.hadoop.security.authentication.server.MultiMechsAuthenticationHandler");
25+
26+
super.init(filterConfigWrapper);
27+
}
28+
}

0 commit comments

Comments
 (0)