1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.myfaces.tobago.facelets;
21
22 import org.slf4j.Logger;
23 import org.slf4j.LoggerFactory;
24
25 import javax.servlet.Filter;
26 import javax.servlet.FilterChain;
27 import javax.servlet.FilterConfig;
28 import javax.servlet.ServletException;
29 import javax.servlet.ServletRequest;
30 import javax.servlet.ServletResponse;
31 import javax.servlet.annotation.WebFilter;
32 import java.io.IOException;
33 import java.lang.invoke.MethodHandles;
34 import java.nio.charset.StandardCharsets;
35
36 @WebFilter(urlPatterns = "/*")
37 public class FixCharacterEncodingFilter implements Filter {
38
39 private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
40
41 @Override
42 public void init(final FilterConfig filterConfig) throws ServletException {
43 if (LOG.isInfoEnabled()) {
44 LOG.info("Filter initialized: Setting characterEncoding to UTF-8 to all requests.");
45 }
46 }
47
48 @Override
49 public void doFilter(
50 final ServletRequest servletRequest, final ServletResponse servletResponse, final FilterChain filterChain)
51 throws IOException, ServletException {
52 if (servletRequest.getCharacterEncoding() == null) {
53 servletRequest.setCharacterEncoding(StandardCharsets.UTF_8.name());
54 }
55 filterChain.doFilter(servletRequest, servletResponse);
56 }
57
58 @Override
59 public void destroy() {
60 }
61 }