Skip to content

Instantly share code, notes, and snippets.

@thrakt
Created May 20, 2014 11:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save thrakt/0e7f5c43171d70840285 to your computer and use it in GitHub Desktop.
Save thrakt/0e7f5c43171d70840285 to your computer and use it in GitHub Desktop.
初回アクセス時にリンクにjsessionidが入るのをなんとかする ref: http://qiita.com/thrakt/items/f6f31fb13e832e9d710d
package ex.web.interceptor;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;
public class CutJsessionidFilter implements Filter {
private static class CutJsessionidResponseWrapper extends
HttpServletResponseWrapper {
public CutJsessionidResponseWrapper(final HttpServletResponse response) {
super(response);
}
@Override
public String encodeURL(final String url) {
String encurl = super.encodeURL(url).replaceAll(
";jsessionid=[0-9a-zA-Z]+", "");
return encurl;
}
}
@Override
public void init(final FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(final ServletRequest request,
final ServletResponse response, final FilterChain chain)
throws IOException, ServletException {
if (response instanceof HttpServletResponse
&& !(response instanceof CutJsessionidResponseWrapper)) {
chain.doFilter(request, new CutJsessionidResponseWrapper(
(HttpServletResponse) response));
return;
}
chain.doFilter(request, response);
}
@Override
public void destroy() {
}
}
<filter>
<filter-name>cutJsessionidFilter</filter-name>
<filter-class>ex.web.interceptor.CutJsessionidFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>cutJsessionidFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment