001    package tinlizard.web;
002    
003    import tinlizard.model.CurrentUser;
004    
005    import java.io.IOException;
006    
007    import javax.servlet.Filter;
008    import javax.servlet.FilterChain;
009    import javax.servlet.FilterConfig;
010    import javax.servlet.ServletException;
011    import javax.servlet.ServletRequest;
012    import javax.servlet.ServletResponse;
013    
014    import org.apache.log4j.Logger;
015    
016    /**
017     * Servlet Filter to set Locale.
018     */
019    public class LocalizationFilter implements Filter {
020        private static final Logger LOG = Logger.getLogger(LocalizationFilter.class);
021    
022        public void init(final FilterConfig filterConfig) throws ServletException {
023        }
024    
025        public void destroy() {
026        }
027    
028        public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain) throws IOException, ServletException {
029            if (LOG.isDebugEnabled()) {
030                LOG.debug("PRE.req:" + request.getLocale().getLanguage());
031                LOG.debug("PRE.resp:" + response.getLocale().getLanguage());
032            }
033    
034            CurrentUser.setLocale(request.getLocale());
035            chain.doFilter(request, response);
036    
037            if (LOG.isDebugEnabled()) {
038                LOG.debug("POST.req:" + request.getLocale().getLanguage());
039                LOG.debug("POST.resp:" + response.getLocale().getLanguage());
040            }
041        }
042    }