modify filters with lastafilter
This commit is contained in:
parent
de222d6c75
commit
f5a57eba99
4 changed files with 80 additions and 9 deletions
31
src/main/java/org/codelibs/fess/filter/DIFilter.java
Normal file
31
src/main/java/org/codelibs/fess/filter/DIFilter.java
Normal 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 */
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
19
src/main/java/org/codelibs/fess/filter/RoutingFilter.java
Normal file
19
src/main/java/org/codelibs/fess/filter/RoutingFilter.java
Normal 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 */
|
||||
}
|
||||
|
||||
}
|
|
@ -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>
|
||||
|
||||
<!--
|
||||
|
|
Loading…
Add table
Reference in a new issue