/** * Creates the {@link com.mockrunner.mock.web.MockHttpServletRequest} using <code>new</code>. * This method can be overridden to return a subclass of {@link com.mockrunner.mock.web.MockHttpServletRequest}. * @return the {@link com.mockrunner.mock.web.MockHttpServletRequest} */ public MockHttpServletRequest createMockRequest() { return new MockHttpServletRequest(); }
public void setBodyContent(String bodyContent) { String encoding = (null == characterEncoding) ? "ISO-8859-1" : characterEncoding; try { setBodyContent(bodyContent.getBytes(encoding)); } catch(UnsupportedEncodingException exc) { throw new NestedApplicationException(exc); } }
/** * Adds a request parameter. * @param key the parameter key * @param value the parameters value */ public void setupAddParameter(String key, String value) { setupAddParameter(key, new String[] { value }); }
MockHttpServletRequest request(String method, String path, String remoteAddr, String body, String referer) { MockHttpServletRequest req = new MockHttpServletRequest(); req.setMethod(method); req.setServerName("localhost"); req.setServletPath(path.substring(0, path.indexOf('/', 1))); req.setPathInfo(path.substring(path.indexOf('/', 1))); req.setRemoteAddr(remoteAddr); if(body==null) body=""; // MockHttpServletRequest#getInputStream doesn't like null bodies // and throws NullPointerException. It should probably do something useful like return an empty stream or throw // IOException. req.setBodyContent(body); if(referer!=null) req.setHeader("Referer", referer); return req; }
@Test public void testResolveRequestHeaderFromValue() { final String headerName = "example"; final String seedValue = "928"; // GIVEN AbstractRequestHeaderPatternVoter voter = new AbstractRequestHeaderPatternVoter() { @Override protected boolean matches(String value) { return false; } }; MockHttpServletRequest request = new MockHttpServletRequest(); request.setHeader(headerName, seedValue); // WHEN String retrievedValue = voter.resolveRequestHeaderFromValue(request, headerName); // THEN assertEquals(seedValue, retrievedValue); }
/** * Calls the current servlets <code>doOptions</code> method. * If you set <i>doChain</i> to <code>true</code> (use {@link #setDoChain}), * the filter chain will be called before <code>doOptions</code>. */ public void doOptions() { mockFactory.getMockRequest().setMethod("OPTIONS"); callService(); }
MockHttpServletResponse response = new MockHttpServletResponse(); MockFilterChain chain = new MockFilterChain(); request.setupAddParameter("ticket", "ST-blabla"); request.setQueryString("ticket=ST-blabla"); request.setHeader(GeoServerCasAuthenticationEntryPoint.CAS_REDIRECT, "false"); getProxy().doFilter(request, response, chain); assertEquals(HttpServletResponse.SC_UNAUTHORIZED, response.getErrorCode()); response = new MockHttpServletResponse(); chain = new MockFilterChain(); request.setupAddParameter("ticket", "ST-blabla"); request.setupAddParameter(GeoServerCasAuthenticationEntryPoint.CAS_REDIRECT, "false"); request.setQueryString("ticket=ST-blabla&"+GeoServerCasAuthenticationEntryPoint.CAS_REDIRECT+"=false"); getProxy().doFilter(request, response, chain); assertEquals(HttpServletResponse.SC_UNAUTHORIZED, response.getErrorCode()); for (int i = 0; i < 2; i++) { request = createRequest("wms"); request.setQueryString("request=getCapabilities"); proxyTicket = ass.getPrincipal().getProxyTicketFor( request.getRequestURL().toString() + "?" + request.getQueryString()); assertNotNull(proxyTicket); response = new MockHttpServletResponse(); chain = new MockFilterChain(); request.setupAddParameter("ticket", proxyTicket); if (i==0) { request.setupAddParameter(GeoServerCasAuthenticationEntryPoint.CAS_REDIRECT, "false"); request.setQueryString(request.getQueryString()+"&ticket="+proxyTicket+"&"+GeoServerCasAuthenticationEntryPoint.CAS_REDIRECT+"=false"); } else {
@Override @Before public void setUp() throws Exception { super.setUp(); ComponentsTestUtil.setImplementation(WebContextFactory.class, WebContextFactoryImpl.class); User dummy = createNiceMock(User.class); expect(dummy.getName()).andReturn("admin"); expect(dummy.getPassword()).andReturn("admin"); mocks = new Object[]{dummy}; replay(mocks); MockHttpSession session = new MockHttpSession(); MockHttpServletRequest req = new MockHttpServletRequest(); req.setSession(session); MgnlContext.setInstance(ContextFactory.getInstance().createWebContext(req, null, null)); ((UserContextImpl) MgnlContext.getInstance()).login(MockUtil.createSubject(dummy)); }
@Test public void eTagDoesNotContainJSessionIdNorFilename() throws IOException, ServletException { // GIVEN final String filename = "dummy.txt"; final RangeSupportFilter filter = new RangeSupportFilter(); final FilterChain chain = new FilterChain() { @Override public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException { response.getOutputStream().println("dummy string"); } }; final MockHttpServletRequest request = new MockHttpServletRequest(); request.setMethod("GET"); request.setRequestURI(String.format("/some/path/%s;JSESSIONID=EE3DB6042B1B57AD55C2633428F44496", filename)); request.setHeader("Range", "bytes=0-56000"); final MockHttpServletResponse response = new MockHttpServletResponse(); // WHEN filter.doFilter(request, response, chain); // THEN assertThat(response.getHeader("ETag"), not(containsString("JSESSIONID"))); assertThat(response.getHeader("ETag"), not(containsString(filename))); }
SecurityContext ctx = (SecurityContext) request.getSession(false).getAttribute( HttpSessionSecurityContextRepository.SPRING_SECURITY_CONTEXT_KEY); assertNotNull(ctx); assertNotNull(auth); assertNull(SecurityContextHolder.getContext().getAuthentication()); MockHttpSession session = (MockHttpSession) request.getSession(false); assertNotNull(session); assertTrue(session.isValid()); assertNotNull(redirectUrl); assertTrue(redirectUrl.contains(GeoServerCasConstants.LOGOUT_URI)); session = (MockHttpSession) request.getSession(false); ctx = (SecurityContext) request.getSession(false).getAttribute( HttpSessionSecurityContextRepository.SPRING_SECURITY_CONTEXT_KEY); assertNotNull(ctx); assertNotNull(auth); assertNull(SecurityContextHolder.getContext().getAuthentication()); session = (MockHttpSession) request.getSession(false); assertNotNull(session); assertTrue(session.isValid()); request.setMethod("POST"); request.setSession(session); response = new MockHttpServletResponse(); chain = new MockFilterChain(); request.setupAddParameter("logoutRequest", getBodyForLogoutRequest(ticket));
@Test public void testGetContextRelativePath() { // GIVEN MockHttpServletRequest mock = new MockHttpServletRequest(); mock.setRequestURI("/context/servlet/path"); mock.setServletPath("/servlet"); mock.setContextPath("/context"); mock.setPathInfo("/path"); // WHEN String contextRelativePath = ServletUtil.getContextRelativePath(mock); // THEN assertEquals("/servlet/path", contextRelativePath); }
Request buildRequest(String ipAddress, String proxyIp) { Request request = new Request(); MockHttpServletRequest httpRequest = new MockHttpServletRequest(); request.setHttpRequest(httpRequest); request.setHttpResponse(new MockHttpServletResponse()); if (ipAddress != null && !ipAddress.equals("")) { httpRequest.setRemoteAddr(ipAddress); } else { httpRequest.setRemoteAddr("127.0.0.1"); } if (!proxyIp.equals("")) { httpRequest.setHeader("x-forwarded-for", proxyIp + ", " + ipAddress); } return request; }
@Test public void testWillNotBlockNewlyAddedParametersOnForward() { MockHttpServletRequest mock = new MockHttpServletRequest(); mock.setupAddParameter("a", "12"); UnicodeNormalizationRequestWrapper request = new UnicodeNormalizationRequestWrapper(mock); assertEquals("12", request.getParameter("a")); assertEquals(1, request.getParameterMap().size()); assertNull(request.getParameter("b")); mock.setupAddParameter("b", "24"); assertEquals("12", request.getParameter("a")); assertEquals(2, request.getParameterMap().size()); assertEquals("24", request.getParameter("b")); }
public void testDirectWMSIntegrationIfModifiedSinceSupport() throws Exception { final GWC gwc = GWC.get(); gwc.getConfig().setDirectWMSIntegrationEnabled(true); final String layerName = BASIC_POLYGONS.getPrefix() + ":" + BASIC_POLYGONS.getLocalPart(); final String path = buildGetMap(true, layerName, "EPSG:4326", null) + "&tiled=true"; MockHttpServletResponse response = getAsServletResponse(path); assertEquals(200, response.getStatusCode()); assertEquals("image/png", response.getContentType()); String lastModifiedHeader = response.getHeader("Last-Modified"); assertNotNull(lastModifiedHeader); Date lastModified = DateUtil.parseDate(lastModifiedHeader); MockHttpServletRequest httpReq = createRequest(path); httpReq.setMethod("GET"); httpReq.setBodyContent(new byte[] {}); httpReq.setHeader("If-Modified-Since", lastModifiedHeader); response = dispatch(httpReq, "UTF-8"); assertEquals(HttpServletResponse.SC_NOT_MODIFIED, response.getErrorCode()); // set the If-Modified-Since header to some point in the past of the last modified value Date past = new Date(lastModified.getTime() - 5000); String ifModifiedSince = DateUtil.formatDate(past); httpReq.setHeader("If-Modified-Since", ifModifiedSince); response = dispatch(httpReq, "UTF-8"); assertEquals(HttpServletResponse.SC_OK, response.getErrorCode()); Date future = new Date(lastModified.getTime() + 5000); ifModifiedSince = DateUtil.formatDate(future); httpReq.setHeader("If-Modified-Since", ifModifiedSince); response = dispatch(httpReq, "UTF-8"); assertEquals(HttpServletResponse.SC_NOT_MODIFIED, response.getErrorCode()); }
@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 testGetOriginalRequestUriStripsPathParameter() { MockHttpServletRequest mock = new MockHttpServletRequest(); mock.setRequestURI("/foo/bar.html;jsessionid=EC910C89AE7B9E9A0CF7DF79622EEC74"); String originalRequestURI = ServletUtil.getOriginalRequestURI(mock); assertEquals("/foo/bar.html", originalRequestURI); }
@Test public void testGetRequestUriStripsPathParameterInIncludeRequest() { MockHttpServletRequest mock = new MockHttpServletRequest(); mock.setRequestURI("/foo/bar.html;jsessionid=EC910C89AE7B9E9A0CF7DF79622EEC74"); mock.setAttribute(ServletUtil.INCLUDE_REQUEST_URI_ATTRIBUTE, "/foo/bar/include.html;jsessionid=EC910C89AE7B9E9A0CF7DF79622EEC74"); String requestUri = ServletUtil.getRequestUri(mock); assertEquals("/foo/bar/include.html", requestUri); }
@Test public void testIsForward() { MockHttpServletRequest mock = new MockHttpServletRequest(); assertFalse(ServletUtil.isForward(mock)); mock.setAttribute(ServletUtil.FORWARD_REQUEST_URI_ATTRIBUTE, "/test.html"); assertTrue(ServletUtil.isForward(mock)); mock.setAttribute(ServletUtil.INCLUDE_REQUEST_URI_ATTRIBUTE, "/test.jsp"); assertFalse(ServletUtil.isForward(mock)); }
request.setMethod("POST"); MockHttpServletResponse response = new MockHttpServletResponse(); MockFilterChain chain = new MockFilterChain(); String paramValue = URLDecoder.decode(buff.toString(), "utf-8"); request.setupAddParameter("logoutRequest", paramValue.substring(paramValue.indexOf("=") + 1)); try { GeoServerSecurityFilterChainProxy proxy = getProxy(); System.out.println("SERVCIE: " + service); System.out.println("URL: " + request.getRequestURL().toString()); for (SecurityFilterChain c : proxy.getFilterChains()) { System.out.println(c.toString());
public boolean isRequestedSessionIdValid() { HttpSession session = getSession(); return null != session; }