@Bean public FilterRegistrationBean encodingFilter() { FilterRegistrationBean bean = new FilterRegistrationBean(); bean.setFilter(new CharacterEncodingFilter()); bean.addInitParameter("encoding", "UTF-8"); //FIXME: https://github.com/Netflix/eureka/issues/702 // bean.addInitParameter("forceEncoding", "true"); bean.setName("encodingFilter"); bean.addUrlPatterns("/*"); bean.setDispatcherTypes(DispatcherType.REQUEST, DispatcherType.FORWARD); return bean; } }
@Configuration @EnableWebMvcSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { CharacterEncodingFilter filter = new CharacterEncodingFilter(); filter.setEncoding("UTF-8"); filter.setForceEncoding(true); http.addFilterBefore(filter,CsrfFilter.class); //rest of your code } //rest of your code }
@Test public void withIncompleteInitialization() throws Exception { HttpServletRequest request = mock(HttpServletRequest.class); given(request.getCharacterEncoding()).willReturn(null); given(request.getAttribute(WebUtils.ERROR_REQUEST_URI_ATTRIBUTE)).willReturn(null); given(request.getAttribute(filteredName(CharacterEncodingFilter.class.getName()))).willReturn(null); MockHttpServletResponse response = new MockHttpServletResponse(); FilterChain filterChain = mock(FilterChain.class); CharacterEncodingFilter filter = new CharacterEncodingFilter(ENCODING); filter.doFilter(request, response, filterChain); verify(request).setCharacterEncoding(ENCODING); verify(request).setAttribute(filteredName(CharacterEncodingFilter.class.getName()), Boolean.TRUE); verify(request).removeAttribute(filteredName(CharacterEncodingFilter.class.getName())); verify(filterChain).doFilter(request, response); }
@Test public void forceEncodingAlwaysSetsEncoding() throws Exception { HttpServletRequest request = mock(HttpServletRequest.class); request.setCharacterEncoding(ENCODING); given(request.getAttribute(WebUtils.ERROR_REQUEST_URI_ATTRIBUTE)).willReturn(null); given(request.getAttribute(filteredName(FILTER_NAME))).willReturn(null); HttpServletResponse response = mock(HttpServletResponse.class); FilterChain filterChain = mock(FilterChain.class); CharacterEncodingFilter filter = new CharacterEncodingFilter(ENCODING, true); filter.init(new MockFilterConfig(FILTER_NAME)); filter.doFilter(request, response, filterChain); verify(request).setAttribute(filteredName(FILTER_NAME), Boolean.TRUE); verify(request).removeAttribute(filteredName(FILTER_NAME)); verify(response).setCharacterEncoding(ENCODING); verify(filterChain).doFilter(request, response); }
@Test public void setForceEncodingOnRequestOnly() throws Exception { HttpServletRequest request = mock(HttpServletRequest.class); request.setCharacterEncoding(ENCODING); given(request.getAttribute(WebUtils.ERROR_REQUEST_URI_ATTRIBUTE)).willReturn(null); given(request.getAttribute(filteredName(FILTER_NAME))).willReturn(null); HttpServletResponse response = mock(HttpServletResponse.class); FilterChain filterChain = mock(FilterChain.class); CharacterEncodingFilter filter = new CharacterEncodingFilter(ENCODING, true, false); filter.init(new MockFilterConfig(FILTER_NAME)); filter.doFilter(request, response, filterChain); verify(request).setAttribute(filteredName(FILTER_NAME), Boolean.TRUE); verify(request).removeAttribute(filteredName(FILTER_NAME)); verify(request, times(2)).setCharacterEncoding(ENCODING); verify(response, never()).setCharacterEncoding(ENCODING); verify(filterChain).doFilter(request, response); }
@Test public void encodingIfEmptyAndNotForced() throws Exception { HttpServletRequest request = mock(HttpServletRequest.class); given(request.getCharacterEncoding()).willReturn(null); given(request.getAttribute(WebUtils.ERROR_REQUEST_URI_ATTRIBUTE)).willReturn(null); given(request.getAttribute(filteredName(FILTER_NAME))).willReturn(null); MockHttpServletResponse response = new MockHttpServletResponse(); FilterChain filterChain = mock(FilterChain.class); CharacterEncodingFilter filter = new CharacterEncodingFilter(ENCODING); filter.init(new MockFilterConfig(FILTER_NAME)); filter.doFilter(request, response, filterChain); verify(request).setCharacterEncoding(ENCODING); verify(request).setAttribute(filteredName(FILTER_NAME), Boolean.TRUE); verify(request).removeAttribute(filteredName(FILTER_NAME)); verify(filterChain).doFilter(request, response); }
@Test public void doesNotIfEncodingIsNotEmptyAndNotForced() throws Exception { HttpServletRequest request = mock(HttpServletRequest.class); given(request.getCharacterEncoding()).willReturn(ENCODING); given(request.getAttribute(WebUtils.ERROR_REQUEST_URI_ATTRIBUTE)).willReturn(null); given(request.getAttribute(filteredName(FILTER_NAME))).willReturn(null); MockHttpServletResponse response = new MockHttpServletResponse(); FilterChain filterChain = mock(FilterChain.class); CharacterEncodingFilter filter = new CharacterEncodingFilter(ENCODING); filter.init(new MockFilterConfig(FILTER_NAME)); filter.doFilter(request, response, filterChain); verify(request).setAttribute(filteredName(FILTER_NAME), Boolean.TRUE); verify(request).removeAttribute(filteredName(FILTER_NAME)); verify(filterChain).doFilter(request, response); }
@Test public void withBeanInitialization() throws Exception { HttpServletRequest request = mock(HttpServletRequest.class); given(request.getCharacterEncoding()).willReturn(null); given(request.getAttribute(WebUtils.ERROR_REQUEST_URI_ATTRIBUTE)).willReturn(null); given(request.getAttribute(filteredName(FILTER_NAME))).willReturn(null); MockHttpServletResponse response = new MockHttpServletResponse(); FilterChain filterChain = mock(FilterChain.class); CharacterEncodingFilter filter = new CharacterEncodingFilter(); filter.setEncoding(ENCODING); filter.setBeanName(FILTER_NAME); filter.setServletContext(new MockServletContext()); filter.doFilter(request, response, filterChain); verify(request).setCharacterEncoding(ENCODING); verify(request).setAttribute(filteredName(FILTER_NAME), Boolean.TRUE); verify(request).removeAttribute(filteredName(FILTER_NAME)); verify(filterChain).doFilter(request, response); }
@Test public void chainMultiple() { MockMvcBuilders .webAppContextSetup(wac) .addFilter(new CharacterEncodingFilter() ) .defaultRequest(get("/").contextPath("/mywebapp")) .build(); }
@Override protected Filter[] getServletFilters() { CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter(); characterEncodingFilter.setEncoding(Constants.DEFAULT_CHARSET_NAME); characterEncodingFilter.setForceEncoding(true); return new Filter[] { characterEncodingFilter }; }
@Override protected Filter[] getServletFilters() { CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter(); characterEncodingFilter.setEncoding(Constants.DEFAULT_CHARSET_NAME); characterEncodingFilter.setForceEncoding(true); return new Filter[] { characterEncodingFilter }; }
public class MessageSecurityWebApplicationInitializer extends AbstractSecurityWebApplicationInitializer { @Override protected void beforeSpringSecurityFilterChain(ServletContext servletContext) { FilterRegistration.Dynamic characterEncodingFilter = servletContext.addFilter("encodingFilter", new CharacterEncodingFilter()); characterEncodingFilter.setInitParameter("encoding", "UTF-8"); characterEncodingFilter.setInitParameter("forceEncoding", "true"); characterEncodingFilter.addMappingForUrlPatterns(null, false, "/*"); } }
@Bean public org.springframework.web.filter.CharacterEncodingFilter characterEncodingFilter() { org.springframework.web.filter.CharacterEncodingFilter characterEncodingFilter = new org.springframework.web.filter.CharacterEncodingFilter(); characterEncodingFilter.setEncoding("UTF-8"); characterEncodingFilter.setForceEncoding(true); return characterEncodingFilter; }
@Bean public Filter characterEncodingFilter() { CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter(); characterEncodingFilter.setEncoding("UTF-8"); characterEncodingFilter.setForceEncoding(true); return characterEncodingFilter; }
@Bean public FilterRegistrationBean filterRegistrationBean() { FilterRegistrationBean registrationBean = new FilterRegistrationBean(); CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter(); characterEncodingFilter.setEncoding("UTF-8"); registrationBean.setFilter(characterEncodingFilter); return registrationBean; }
@Bean public FilterRegistrationBean filterRegistrationBean() { FilterRegistrationBean registrationBean = new FilterRegistrationBean(); CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter(); characterEncodingFilter.setForceEncoding(true); characterEncodingFilter.setEncoding("UTF-8"); registrationBean.setFilter(characterEncodingFilter); return registrationBean; }
@Override protected Filter[] getServletFilters() { CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter(); characterEncodingFilter.setEncoding("UTF-8"); characterEncodingFilter.setForceEncoding(true); return new Filter[] { characterEncodingFilter }; }
@Bean public FilterRegistrationBean characterEncodingFilterRegistration() { FilterRegistrationBean registration = new FilterRegistrationBean(); CharacterEncodingFilter filter = new CharacterEncodingFilter(); registration.setFilter(filter); registration.setName("characterEncoding"); registration.addInitParameter("encoding", "UTF-8"); registration.addInitParameter("forceEncoding", "true"); registration.addUrlPatterns("/*"); registration.setOrder(1); return registration; }
public void onStartup(ServletContext servletContext) throws ServletException { FilterRegistration.Dynamic encodingFilter = servletContext.addFilter("encoding-filter", new CharacterEncodingFilter()); encodingFilter.setInitParameter("encoding", "UTF-8"); encodingFilter.setInitParameter("forceEncoding", "true"); encodingFilter.addMappingForUrlPatterns(null, true, "/*"); }
@Bean public FilterRegistrationBean filterRegistrationBean() { FilterRegistrationBean registrationBean = new FilterRegistrationBean(); CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter(); registrationBean.setFilter(characterEncodingFilter); characterEncodingFilter.setEncoding("UTF-8"); characterEncodingFilter.setForceEncoding(true); registrationBean.setOrder(Integer.MIN_VALUE); registrationBean.addUrlPatterns("/*"); return registrationBean; }