modify filters with lastafilter

This commit is contained in:
Shinsuke Sugaya 2015-08-13 10:45:19 +09:00
parent de222d6c75
commit f5a57eba99
4 changed files with 80 additions and 9 deletions

View file

@ -0,0 +1,31 @@
package org.codelibs.fess.filter;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Deque;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.lastaflute.web.LastaFilter;
import org.lastaflute.web.servlet.filter.listener.FilterHook;
public class DIFilter extends LastaFilter {
@Override
protected void resolveCharacterEncoding(HttpServletRequest request) throws UnsupportedEncodingException {
// nothing
}
@Override
protected void viaInsideHookDeque(HttpServletRequest request, HttpServletResponse response, FilterChain chain, Deque<FilterHook> deque)
throws IOException, ServletException {
if (!deque.isEmpty()) {
super.viaInsideHookDeque(request, response, chain, deque);
} else {
routingFilter.doFilter(request, response, prepareFinalChain(chain)); /* #to_action */
}
}
}

View file

@ -24,6 +24,7 @@ import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletContext;
@ -38,8 +39,7 @@ import org.apache.commons.codec.net.URLCodec;
import org.codelibs.core.lang.StringUtil;
import org.lastaflute.web.LastaFilter;
// TODO parent filter
public class FessEncodingFilter extends LastaFilter {
public class EncodingFilter implements Filter {
public static String ENCODING_MAP = "encodingRules";
protected Map<String, String> encodingMap = new ConcurrentHashMap<>();
@ -52,12 +52,11 @@ public class FessEncodingFilter extends LastaFilter {
@Override
public void init(final FilterConfig config) throws ServletException {
super.init(config);
servletContext = config.getServletContext();
encoding = config.getInitParameter(ENCODING_KEY);
encoding = config.getInitParameter(LastaFilter.ENCODING_KEY);
if (encoding == null) {
encoding = DEFAULT_ENCODING;
encoding = LastaFilter.DEFAULT_ENCODING;
}
// ex. sjis:Shift_JIS,eucjp:EUC-JP
@ -118,7 +117,7 @@ public class FessEncodingFilter extends LastaFilter {
}
}
super.doFilter(request, response, chain);
chain.doFilter(request, response);
}
protected Map<String, String[]> getParameterMapFromQueryString(final HttpServletRequest request, final String enc) throws IOException {
@ -169,4 +168,9 @@ public class FessEncodingFilter extends LastaFilter {
}
return paramMap;
}
@Override
public void destroy() {
// nothing
}
}

View file

@ -0,0 +1,19 @@
package org.codelibs.fess.filter;
import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import org.lastaflute.web.LastaFilter;
public class RoutingFilter extends LastaFilter {
@Override
public void doFilter(ServletRequest servReq, ServletResponse servRes, FilterChain chain) throws IOException, ServletException {
routingFilter.doFilter(servReq, servRes, prepareFinalChain(chain)); /* #to_action */
}
}

View file

@ -24,7 +24,7 @@
<!-- ============== -->
<filter>
<filter-name>encodingfilter</filter-name>
<filter-class>org.codelibs.fess.filter.FessEncodingFilter</filter-class>
<filter-class>org.codelibs.fess.filter.EncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
@ -57,6 +57,16 @@
<filter-class>org.codelibs.fess.filter.WebApiFilter</filter-class>
</filter>
<filter>
<filter-name>diFilter</filter-name>
<filter-class>org.codelibs.fess.filter.DIFilter</filter-class>
</filter>
<filter>
<filter-name>routingFilter</filter-name>
<filter-class>org.codelibs.fess.filter.RoutingFilter</filter-class>
</filter>
<!--
<filter>
<filter-name>adLoginInfoFilter</filter-name>
@ -146,7 +156,13 @@
<filter-name>encodingfilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>FORWARD</dispatcher><!-- TODO -->
</filter-mapping>
<filter-mapping>
<filter-name>diFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
<filter-mapping>
@ -161,8 +177,9 @@
</filter-mapping>
<filter-mapping>
<filter-name>lastaFilter</filter-name>
<filter-name>routingFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
<!--