@Test public void testRetrieveSameOutputStream() throws Exception { MockHttpServletRequest request = new MockHttpServletRequest("GET", "http://www.geoserver.org"); request.addHeader("accept-encoding", "gzip"); MockHttpServletResponse response = new MockHttpServletResponse(); response.setContentType("text/plain"); // run the filter GZIPFilter filter = new GZIPFilter(); MockServletContext context = new MockServletContext(); MockFilterConfig config = new MockFilterConfig(context); config.addInitParameter("compressed-types", "text/plain"); filter.init(config); MockFilterChain chain = new MockFilterChain() { @Override public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException { AlternativesResponseStream alternatives = (AlternativesResponseStream) response.getOutputStream(); GZIPResponseStream gzipStream = (GZIPResponseStream) alternatives.getStream(); assertThat( gzipStream.delegateStream, CoreMatchers.instanceOf(DelegatingServletOutputStream.class)); } }; filter.doFilter(request, response, chain); }
protected void setupFilter() throws ServletException { MockFilterConfig config = new MockFilterConfig(); config.addInitParameter(ProcessEngineAuthenticationFilter.AUTHENTICATION_PROVIDER_PARAM, HttpBasicAuthenticationProvider.class.getName()); authenticationFilter = new ProcessEngineAuthenticationFilter(); authenticationFilter.init(config); }
@Test public void testIgnorePatternsWithInvalidClassname() throws Exception { final AuthenticationFilter f = new AuthenticationFilter(); final MockServletContext context = new MockServletContext(); context.addInitParameter("casServerLoginUrl", CAS_LOGIN_URL); context.addInitParameter("ignorePattern", "=valueToIgnore"); context.addInitParameter("ignoreUrlPatternType", "unknown.class.name"); context.addInitParameter("service", CAS_SERVICE_URL); f.init(new MockFilterConfig(context)); final MockHttpServletRequest request = new MockHttpServletRequest(); final String URL = CAS_SERVICE_URL + "?param=valueToIgnore"; request.setRequestURI(URL); final MockHttpSession session = new MockHttpSession(); request.setSession(session); final MockHttpServletResponse response = new MockHttpServletResponse(); final FilterChain filterChain = new FilterChain() { public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException { } }; f.doFilter(request, response, filterChain); System.out.println(response.getRedirectedUrl()); } }
@Test public void testNotGZippedMantainsContentLength() throws Exception { MockHttpServletRequest request = new MockHttpServletRequest("GET", "http://www.geoserver.org"); request.addHeader("accept-encoding", "gzip"); MockHttpServletResponse response = new MockHttpServletResponse(); response.setContentType("text/css"); // run the filter GZIPFilter filter = new GZIPFilter(); MockServletContext context = new MockServletContext(); context.setInitParameter("compressed-types", "text/plain"); MockFilterConfig config = new MockFilterConfig(context); filter.init(config); MockFilterChain chain = new MockFilterChain() { @Override public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException { response.setContentLength(1000); AlternativesResponseStream alternatives = (AlternativesResponseStream) response.getOutputStream(); ServletOutputStream gzipStream = alternatives.getStream(); gzipStream.write(1); } }; filter.doFilter(request, response, chain); assertTrue(response.containsHeader("Content-Length")); assertEquals("1000", response.getHeader("Content-Length")); }
@Test public void testIgnorePatternsWithExactMatching() throws Exception { final AuthenticationFilter f = new AuthenticationFilter(); final MockServletContext context = new MockServletContext(); context.addInitParameter("casServerLoginUrl", CAS_LOGIN_URL); final URL url = new URL(CAS_SERVICE_URL + "?param=valueToIgnore"); context.addInitParameter("ignorePattern", url.toExternalForm()); context.addInitParameter("ignoreUrlPatternType", "EXACT"); context.addInitParameter("service", CAS_SERVICE_URL); f.init(new MockFilterConfig(context)); final MockHttpServletRequest request = new MockHttpServletRequest(); request.setScheme(url.getProtocol()); request.setServerName(url.getHost()); request.setServerPort(url.getPort()); request.setQueryString(url.getQuery()); request.setRequestURI(url.getPath()); final MockHttpSession session = new MockHttpSession(); request.setSession(session); final MockHttpServletResponse response = new MockHttpServletResponse(); final FilterChain filterChain = new FilterChain() { public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException { } }; f.doFilter(request, response, filterChain); assertNull(response.getRedirectedUrl()); }
private void urlPathRootPathDeviceMobilePreference(DeviceType deviceType) throws Exception { device.setDeviceType(deviceType); SiteSwitcherRequestFilter urlPath = new SiteSwitcherRequestFilter(); MockFilterConfig filterConfig = new MockFilterConfig(); filterConfig.addInitParameter("switcherMode", "urlPath"); filterConfig.addInitParameter("mobilePath", "/mob"); filterConfig.addInitParameter("tabletPath", "/tab"); filterConfig.addInitParameter("rootPath", "/app"); urlPath.init(filterConfig); request.addParameter("site_preference", "mobile"); urlPath.doFilter(request, response, filterChain); assertEquals(1, response.getCookies().length); assertEquals("MOBILE", response.getCookies()[0].getValue()); assertEquals("http://" + request.getServerName() + "/app/mob", response.getRedirectedUrl()); }
private String getXStreamHeader() throws IOException, ServletException { MockHttpServletRequest request = new MockHttpServletRequest("GET", "http://www.geoserver.org"); MockHttpServletResponse response = new MockHttpServletResponse(); XFrameOptionsFilter filter = new XFrameOptionsFilter(); MockServletContext context = new MockServletContext(); MockFilterConfig config = new MockFilterConfig(context); MockFilterChain mockChain = new MockFilterChain(); filter.doFilter(request, response, mockChain); return response.getHeader("X-Frame-Options"); } }
public void testIsUserInRoleCaseInsensitive() throws Exception { final MockHttpServletRequest request = new MockHttpServletRequest(); final MockHttpSession session = new MockHttpSession(); final MockFilterConfig config = new MockFilterConfig(); config.addInitParameter("roleAttribute", "groupMembership"); config.addInitParameter("ignoreCase", "true"); final HttpServletRequestWrapperFilter filter = new HttpServletRequestWrapperFilter(); filter.init(config); final Map<String, Object> attributes = new HashMap<String, Object>(); attributes.put("groupMembership", Arrays.asList(new Object[] { "animals", "ducks" })); final AttributePrincipal principal = new AttributePrincipalImpl("daffy", attributes); session.setAttribute(AbstractCasFilter.CONST_CAS_ASSERTION, new AssertionImpl(principal)); request.setSession(session); filter.doFilter(request, new MockHttpServletResponse(), createFilterChain()); assertEquals("daffy", this.mockRequest.getRemoteUser()); assertTrue(this.mockRequest.isUserInRole("animals")); assertTrue(this.mockRequest.isUserInRole("ANIMALS")); assertTrue(this.mockRequest.isUserInRole("ducks")); assertTrue(this.mockRequest.isUserInRole("DUCKS")); assertFalse(this.mockRequest.isUserInRole("varmints")); assertFalse(this.mockRequest.isUserInRole("")); filter.destroy(); }
@Test public void testFlushAfterClose() throws ServletException, IOException { MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse() { filter.init(new MockFilterConfig()); filter.doFilter(request, response, chain); assertEquals("Some random text", response.getContentAsString());
@Test public void testRedirectWithQueryString() throws Exception { final MockHttpSession session = new MockHttpSession(); final MockHttpServletRequest request = new MockHttpServletRequest(); final MockHttpServletResponse response = new MockHttpServletResponse(); request.setQueryString("test=12456"); request.setRequestURI("/test"); request.setSecure(true); final FilterChain filterChain = new FilterChain() { public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException { // nothing to do } }; request.setSession(session); this.filter = new AuthenticationFilter(); final MockFilterConfig config = new MockFilterConfig(); config.addInitParameter("casServerLoginUrl", CAS_LOGIN_URL); config.addInitParameter("serverName", "localhost:8443"); this.filter.init(config); this.filter.doFilter(request, response, filterChain); assertEquals( CAS_LOGIN_URL + "?service=" + URLEncoder.encode( "https://localhost:8443" + request.getRequestURI() + "?" + request.getQueryString(), "UTF-8"), response.getRedirectedUrl()); }
@Test public void testRetrieveSameOutputStream() throws Exception { MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); MockFilterChain chain = new MockFilterChain() { @Override public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException { // make sure repeated calls to get output stream give us back the same // output stream, // e.g., that we're not creating a new wrapper each time ServletOutputStream os1 = response.getOutputStream(); ServletOutputStream os2 = response.getOutputStream(); assertSame(os1, os2); assertTrue(os1 instanceof FlushSafeResponse.FlushSafeServletOutputStream); } }; // run the filter FlushSafeFilter filter = new FlushSafeFilter(); filter.init(new MockFilterConfig()); filter.doFilter(request, response, chain); }
@Before public final void beforeTest(){ MockHttpServletRequest request = new MockHttpServletRequest(); request.setContextPath("/test_context"); RequestContext.setTLs(request, new MockHttpServletResponse(), new MockFilterConfig(), new AppContext(), new RequestVo(), null); }
@Test public void testAllowsRenewContextParam() throws Exception { final AuthenticationFilter f = new AuthenticationFilter(); final MockServletContext context = new MockServletContext(); context.addInitParameter("casServerLoginUrl", CAS_LOGIN_URL); context.addInitParameter("service", CAS_SERVICE_URL); context.addInitParameter("renew", "true"); f.init(new MockFilterConfig(context)); final Field renewField = AuthenticationFilter.class.getDeclaredField("renew"); renewField.setAccessible(true); assertTrue((Boolean) renewField.get(f)); }
public void testFilterCreation() { ValidatorFilter filter = new ValidatorFilter(); HttpServletRequest request = getMockRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); FilterConfig filterConfig = new MockFilterConfig(request.getSession().getServletContext(), "hdivFilter"); FilterChain filterChain = new MockFilterChain(); try { filter.init(filterConfig); filter.doFilter(request, response, filterChain); // Validation error because is not start page String redirectUrl = response.getRedirectedUrl(); assertEquals(getConfig().getErrorPage(), redirectUrl); } catch (ServletException e) { e.printStackTrace(); assertTrue(false); } catch (IOException e) { e.printStackTrace(); assertTrue(false); } }
@Before @BeforeEach public void atStart() { sessionFacade = new SessionTestFacade(new MockHttpSession()); setTemplateLocation("src/main/webapp/WEB-INF/views");//default location of all views RequestContext.setTLs(null, new MockHttpServletResponse(), new MockFilterConfig(), new AppContext(), new RequestVo(), null); }
@Test public void init() throws Exception { FilterConfig config = new MockFilterConfig(); filter = new PatternMappingFilterProxy(delegate, "/"); filter.init(config); assertThat(delegate.filterConfig, is(config)); }
@Test public void servletConfigValueForLong() { final ConfigurationKey<Long> key = ConfigurationKeys.TOLERANCE; final long value = 1500; final MockServletContext context = (MockServletContext) this.filterConfig.getServletContext(); context.addInitParameter(key.getName(), Long.toString(value)); assertEquals(value, this.impl.getLong(key)); }
@Test public void filterConfigValueForBoolean() { final ConfigurationKey<Boolean> key = ConfigurationKeys.ACCEPT_ANY_PROXY; final Boolean value = Boolean.TRUE; this.filterConfig.addInitParameter(key.getName(), value.toString()); assertEquals(value, this.impl.getBoolean(key)); }
@Test public void testIgnorePatternsWithExactClassname() throws Exception { final AuthenticationFilter f = new AuthenticationFilter(); final MockServletContext context = new MockServletContext(); context.addInitParameter("casServerLoginUrl", CAS_LOGIN_URL); context.addInitParameter("ignorePattern", "=valueToIgnore"); context.addInitParameter("ignoreUrlPatternType", ContainsPatternUrlPatternMatcherStrategy.class.getName()); context.addInitParameter("service", CAS_SERVICE_URL); f.init(new MockFilterConfig(context)); final MockHttpServletRequest request = new MockHttpServletRequest(); final String URL = CAS_SERVICE_URL + "?param=valueToIgnore"; request.setRequestURI(URL); final MockHttpSession session = new MockHttpSession(); request.setSession(session); final MockHttpServletResponse response = new MockHttpServletResponse(); final FilterChain filterChain = new FilterChain() { public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException { } }; f.doFilter(request, response, filterChain); assertNull(response.getRedirectedUrl()); }
private void urlPathRootPathDeviceTabletPreference(DeviceType deviceType) throws Exception { device.setDeviceType(deviceType); SiteSwitcherRequestFilter urlPath = new SiteSwitcherRequestFilter(); MockFilterConfig filterConfig = new MockFilterConfig(); filterConfig.addInitParameter("switcherMode", "urlPath"); filterConfig.addInitParameter("mobilePath", "/mob"); filterConfig.addInitParameter("tabletPath", "/tab"); filterConfig.addInitParameter("rootPath", "/app"); urlPath.init(filterConfig); request.addParameter("site_preference", "tablet"); urlPath.doFilter(request, response, filterChain); assertEquals(1, response.getCookies().length); assertEquals("TABLET", response.getCookies()[0].getValue()); assertEquals("http://" + request.getServerName() + "/app/tab", response.getRedirectedUrl()); }