Author: bleny Date: 2014-10-07 17:46:37 +0200 (Tue, 07 Oct 2014) New Revision: 2286 Url: http://forge.codelutin.com/projects/wao/repository/revisions/2286 Log: On redirige les mauvais appels HTTP vers la racine (fixes #5402) Added: trunk/wao-web/src/main/java/fr/ifremer/wao/web/RedirectToContextPathRootFilter.java Modified: trunk/wao-web/src/main/webapp/WEB-INF/web.xml Added: trunk/wao-web/src/main/java/fr/ifremer/wao/web/RedirectToContextPathRootFilter.java =================================================================== --- trunk/wao-web/src/main/java/fr/ifremer/wao/web/RedirectToContextPathRootFilter.java (rev 0) +++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/RedirectToContextPathRootFilter.java 2014-10-07 15:46:37 UTC (rev 2286) @@ -0,0 +1,47 @@ +package fr.ifremer.wao.web; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +/** + * Redirige toutes les requêtes entrantes vers la racine du context-path (/wao) + * + * @since 4.2 + */ +public class RedirectToContextPathRootFilter implements Filter { + + private static final Log log = LogFactory.getLog(RedirectToContextPathRootFilter.class); + + @Override + public void init(FilterConfig filterConfig) { + // nothing to do + } + + @Override + public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException { + + String contextPath = ((HttpServletRequest) servletRequest).getContextPath(); + + if (log.isTraceEnabled()) { + log.trace("will redirect to " + contextPath); + } + + ((HttpServletResponse) servletResponse).sendRedirect(contextPath); + + } + + @Override + public void destroy() { + // nothing to do + } + +} Modified: trunk/wao-web/src/main/webapp/WEB-INF/web.xml =================================================================== --- trunk/wao-web/src/main/webapp/WEB-INF/web.xml 2014-10-07 15:17:45 UTC (rev 2285) +++ trunk/wao-web/src/main/webapp/WEB-INF/web.xml 2014-10-07 15:46:37 UTC (rev 2286) @@ -65,7 +65,18 @@ <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter</filter-class> </filter> + <filter> + <filter-name>RedirectToContextPathRootFilter</filter-name> + <filter-class>fr.ifremer.wao.web.RedirectToContextPathRootFilter</filter-class> + </filter> + + <!-- En utilisant Wao 3.0, des utilisateurs ont enregistrés des marque-pages pointant vers cette URL que Struts ne gère pas, on les redirige vers l'appli --> <filter-mapping> + <filter-name>RedirectToContextPathRootFilter</filter-name> + <url-pattern>/connexion/$B</url-pattern> + </filter-mapping> + + <filter-mapping> <filter-name>struts-prepare</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
participants (1)
-
bleny@users.forge.codelutin.com