package org.freehep.webutil.filter; 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.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * A filter which redirects all incoming http connections to equivalent https connections. * @author tonyj */ public class RequireSSLFilter implements Filter { public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest httpRequest = (HttpServletRequest) request; HttpServletResponse httpResponse = (HttpServletResponse) response; if ("http".equals(request.getScheme())) { StringBuffer requestURL = httpRequest.getRequestURL(); String queryString = httpRequest.getQueryString(); requestURL.replace(0,4,"https"); if (queryString != null) { requestURL.append('?'); requestURL.append(queryString); } httpResponse.sendRedirect(requestURL.toString()); } else { chain.doFilter(request, response); } } public void init(FilterConfig filterConfig) throws ServletException { // Empty } public void destroy() { // Empty } }