protected HttpsServer createAndStartHttpsServer() throws Exception { HttpsServer httpsServer = ((LiveCasData) getTestData()).createSSLServer(); URL callbackUrl = new URL( GeoServerCasConstants.createProxyCallBackURl(proxyCallbackUrlPrefix.toString())); httpsServer.createContext(callbackUrl.getPath(), new HttpsProxyCallBackHandler()); httpsServer.createContext(createRequest("/j_spring_cas_security_check").getRequestURI(), new SingleSignOutHandler("/j_spring_cas_security_check")); httpsServer.createContext(createRequest("/wms").getRequestURI(), new SingleSignOutHandler( "/wms")); httpsServer.start(); return httpsServer; }
@Test public void testGetOriginalRequestUri() { MockHttpServletRequest mock = new MockHttpServletRequest(); mock.setRequestURI("/some/path/and/some.file"); assertEquals("/some/path/and/some.file", ServletUtil.getOriginalRequestURI(mock)); mock.setAttribute(ServletUtil.FORWARD_REQUEST_URI_ATTRIBUTE, mock.getRequestURI()); mock.setRequestURI("/forwarded/to/test/path"); assertEquals("/some/path/and/some.file", ServletUtil.getOriginalRequestURI(mock)); }
@Test public void wrapperRespectsForwards() throws RepositoryException, IOException, Content2BeanException, ServletException, Node2BeanException { String testContent = "" + "/server/filters/servlets/test.class=" + ServletDispatchingFilter.class.getName() + "\n" + "/server/filters/servlets/test.servletClass=" + TestServlet.class.getName() + "\n" + "/server/filters/servlets/test.servletName=TestServlet\n" + "/server/filters/servlets/test.comment=TestComment\n" + "/server/filters/servlets/test.parameters.param1=value1\n" + "/server/filters/servlets/test.parameters.param2=value2\n" + "/server/filters/servlets/test.mappings.mapping.pattern=/mapping/*"; MockHierarchyManager hm = MockUtil.createHierarchyManager(testContent); Node2BeanProcessorImpl n2b = new Node2BeanProcessorImpl(new TypeMappingImpl(), new Node2BeanTransformerImpl()); ServletDispatchingFilter filter = (ServletDispatchingFilter) n2b.toBean(hm.getContent("/server/filters/servlets/test").getJCRNode()); assertEquals("Wrapper for TestServlet servlet", filter.getName()); assertEquals("TestComment", filter.getComment()); assertEquals(2, filter.getParameters().size()); assertEquals("value1", filter.getParameters().get("param1")); assertEquals("value2", filter.getParameters().get("param2")); assertEquals(1, filter.getMappings().size()); filter.init(new CustomFilterConfig("test", null)); MockHttpServletRequest mock = new MockHttpServletRequest(); mock.setRequestURI("/magnoliaAuthor/mapping/test.html"); mock.setContextPath("/magnoliaAuthor"); mock.setServletPath(""); mock.setPathInfo("/mapping/test.html"); MgnlContext.getWebContext().getAggregationState().setCurrentURI(StringUtils.substringAfter(mock.getRequestURI(), mock.getContextPath())); filter.doFilter(mock, new MockHttpServletResponse(), null); filter.destroy(); }
@Test public void testGetOriginalRequestUrlIncludingQueryString() { MockHttpServletRequest mock = new MockHttpServletRequest(); mock.setRequestURL("http://some.domain/foo/bar.html"); mock.setRequestURI("/foo/bar.html"); mock.setQueryString("a=5&b=6"); assertEquals("http://some.domain/foo/bar.html?a=5&b=6", ServletUtil.getOriginalRequestURLIncludingQueryString(mock)); mock.setAttribute(ServletUtil.FORWARD_REQUEST_URI_ATTRIBUTE, mock.getRequestURI()); mock.setAttribute(ServletUtil.FORWARD_QUERY_STRING_ATTRIBUTE, mock.getQueryString()); mock.setScheme("http"); mock.setServerName("some.domain"); mock.setServerPort(80); mock.setRequestURL("/forwarded/to/test/path"); mock.setQueryString("qwerty=yes"); assertEquals("http://some.domain/foo/bar.html?a=5&b=6", ServletUtil.getOriginalRequestURLIncludingQueryString(mock)); mock.setServerPort(8080); assertEquals("http://some.domain:8080/foo/bar.html?a=5&b=6", ServletUtil.getOriginalRequestURLIncludingQueryString(mock)); }