From f9757c30518c3df37d59cd270f6dd8cb62b17bb0 Mon Sep 17 00:00:00 2001 From: jensp Date: Fri, 25 Aug 2017 16:54:08 +0000 Subject: [PATCH] Deleted LanguageUrlFilter, replaced by procedures in modules git-svn-id: https://svn.libreccm.org/ccm/trunk@4922 8810af33-2d31-482b-a856-94f89814c4df --- .../arsdigita/bundle/LanguageUrlFilter.java | 219 ------------------ 1 file changed, 219 deletions(-) delete mode 100644 ccm-sci-bundle/src/com/arsdigita/bundle/LanguageUrlFilter.java diff --git a/ccm-sci-bundle/src/com/arsdigita/bundle/LanguageUrlFilter.java b/ccm-sci-bundle/src/com/arsdigita/bundle/LanguageUrlFilter.java deleted file mode 100644 index 69b4c9c15..000000000 --- a/ccm-sci-bundle/src/com/arsdigita/bundle/LanguageUrlFilter.java +++ /dev/null @@ -1,219 +0,0 @@ -package com.arsdigita.bundle; - -import com.arsdigita.kernel.KernelConfig; - -import org.apache.log4j.Logger; - -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 servlet filter which adds the {@code lang} parameter to the requested URL. - * A the moment the same URL in CCM may point to different language variants of - * content. This can be a problem when a cache like mod_cache is used. This - * filter redirect the incoming request to an URL with the {@code lang} set to - * the default language if the requested URL does not contain the {@code lang} - * parameter. - * - * If the requested URL contains one of the following the filter does nothing: - * - * - * @author Jens Pelzetter - */ -public class LanguageUrlFilter implements Filter { - - private static final Logger LOGGER = Logger.getLogger( - LanguageUrlFilter.class); - - @Override - public void init(final FilterConfig fc) throws ServletException { - // Nothing - } - - @Override - public void doFilter(final ServletRequest request, - final ServletResponse response, - final FilterChain filterChain) - throws IOException, ServletException { - - if (request instanceof HttpServletRequest) { - - final HttpServletRequest httpRequest = (HttpServletRequest) request; -// if (!httpRequest.getRequestURI().contains("/navigation/") -// && !httpRequest.getRequestURI() -// .contains("/content-section/") -// && !httpRequest.getRequestURI().contains("/profiles/") -// && !httpRequest.getRequestURI().contains("/redirect/")) { -// -// filterChain.doFilter(request, response); -// return; -// } -// -// if (httpRequest.getRequestURI().contains("/content-section/") -// && httpRequest.getRequestURI().contains("admin.jsp")) { -// -// filterChain.doFilter(request, response); -// return; -// } - - if (httpRequest.getRequestURI().contains("/ccm/admin") - || httpRequest.getRequestURI().contains( - "/ccm/content-center") - || httpRequest.getRequestURI().contains("/themes/") - || httpRequest.getRequestURI().contains("admin.jsp") - || httpRequest.getRequestURI().contains("item.jsp")) { - - filterChain.doFilter(request, response); - return; - } - - final String queryString = httpRequest.getQueryString(); - - if (queryString != null - && queryString.contains("lang=")) { - - LOGGER.debug("Request URI query string already contains lang " - + "parameter. Nothing to do."); - filterChain.doFilter(request, response); - } else { - - LOGGER.debug("Request URI query string does *not* contain lang" - + "parameter. Redirect to URL with language parameter set " - + "to default language."); - final String defaultLang = KernelConfig - .getConfig() - .getDefaultLanguage(); - - final StringBuilder redirectToUriBuilder = new StringBuilder(); - redirectToUriBuilder - .append(httpRequest.getContextPath()) - .append(httpRequest.getServletPath()) - .append(httpRequest.getPathInfo()); - if (queryString == null || queryString.trim().isEmpty()) { - redirectToUriBuilder.append("?lang=").append(defaultLang); - } else { - redirectToUriBuilder - .append("?") - .append(queryString) - .append("&lang=") - .append(defaultLang); - } - - final String redirectToUri = redirectToUriBuilder.toString(); - LOGGER.debug(String.format("Redirecting to \"%s\"...", - redirectToUri)); - ((HttpServletResponse) response).sendRedirect(redirectToUri); - -// httpRequest -// .getRequestDispatcher(redirectToUri) -// .forward(request, response); - // final StringBuilder redirectToUriBuffer = new StringBuilder(); -//// redirectToUriBuffer.append(httpRequest.getContextPath()); -// redirectToUriBuffer.append(httpRequest.getServletPath()); -// redirectToUriBuffer.append(redirectToPathInfo); -// if (queryString == null -// || queryString.trim().isEmpty()) { -// -// redirectToUriBuffer.append("?lang=").append(lang); -// } else { -// redirectToUriBuffer -// .append(queryString) -// .append("&lang=") -// .append(lang); -// } -// -// final String redirectToUri = redirectToUriBuffer -// .toString() -// .replace("//", "/"); -// -// LOGGER.debug(String.format("Redirecting to \"%s\"...", -// redirectToUri)); -// httpRequest -// .getRequestDispatcher(redirectToUri) -// .forward(request, response); -// LOGGER.debug("Determing languge to use."); -// final String pathInfo = httpRequest.getPathInfo(); -// final String lang; -// final String redirectToPathInfo; -// if (pathInfo != null && pathInfo.matches("(.*)\\.([a-zA-Z0-9])*")) { -// final String languageExt = pathInfo -// .substring(pathInfo.lastIndexOf("."), -// pathInfo.length() - 1); -// final String[] supportedLangs = KernelConfig -// .getConfig().getSupportedLanguages().split(","); -// redirectToPathInfo = pathInfo -// .substring(0, pathInfo.lastIndexOf(".")); -// final boolean isSupported = Arrays -// .binarySearch(supportedLangs, languageExt) != -1; -// -// if (isSupported) { -// LOGGER.debug(String.format( -// "Using language \"%s\" from language extension.", -// languageExt)); -// lang = languageExt; -// } else { -// LOGGER.debug(String.format( -// "Language \"%s\" is not supported. Using " -// + "standard language.", -// languageExt)); -// lang = KernelConfig.getConfig().getDefaultLanguage(); -// } -// } else { -// LOGGER.debug( -// "No language extension, using standard language..."); -// lang = KernelConfig.getConfig().getDefaultLanguage(); -// redirectToPathInfo = pathInfo; -// } -// -// final StringBuilder redirectToUriBuffer = new StringBuilder(); -//// redirectToUriBuffer.append(httpRequest.getContextPath()); -// redirectToUriBuffer.append(httpRequest.getServletPath()); -// redirectToUriBuffer.append(redirectToPathInfo); -// if (queryString == null -// || queryString.trim().isEmpty()) { -// -// redirectToUriBuffer.append("?lang=").append(lang); -// } else { -// redirectToUriBuffer -// .append(queryString) -// .append("&lang=") -// .append(lang); -// } -// -// final String redirectToUri = redirectToUriBuffer -// .toString() -// .replace("//", "/"); -// -// LOGGER.debug(String.format("Redirecting to \"%s\"...", -// redirectToUri)); -// httpRequest -// .getRequestDispatcher(redirectToUri) -// .forward(request, response); - } - - } else { - LOGGER.debug("Request is not a HttpServletRequest. Skiping filter."); - filterChain.doFilter(request, response); - } - } - - @Override - public void destroy() { - // Nothing - } - -}