private String filterAndGetContextPath() throws ServletException, IOException { return filterAndGetWrappedRequest().getContextPath(); }
@Test public void requestURLNewStringBuffer() throws Exception { this.request.addHeader(X_FORWARDED_PREFIX, "/prefix/"); this.request.setRequestURI("/mvc-showcase"); HttpServletRequest actual = filterAndGetWrappedRequest(); actual.getRequestURL().append("?key=value"); assertEquals("http://localhost/prefix/mvc-showcase", actual.getRequestURL().toString()); }
@Test public void requestUriWithForwardedPrefix() throws Exception { this.request.addHeader(X_FORWARDED_PREFIX, "/prefix"); this.request.setRequestURI("/mvc-showcase"); HttpServletRequest actual = filterAndGetWrappedRequest(); assertEquals("http://localhost/prefix/mvc-showcase", actual.getRequestURL().toString()); }
@Test public void requestUriWithForwardedPrefixTrailingSlash() throws Exception { this.request.addHeader(X_FORWARDED_PREFIX, "/prefix/"); this.request.setRequestURI("/mvc-showcase"); HttpServletRequest actual = filterAndGetWrappedRequest(); assertEquals("http://localhost/prefix/mvc-showcase", actual.getRequestURL().toString()); }
@Test public void requestUriPreserveEncoding() throws Exception { this.request.setContextPath("/app"); this.request.setRequestURI("/app/path%20with%20spaces/"); HttpServletRequest actual = filterAndGetWrappedRequest(); assertEquals("/app", actual.getContextPath()); assertEquals("/app/path%20with%20spaces/", actual.getRequestURI()); assertEquals("http://localhost/app/path%20with%20spaces/", actual.getRequestURL().toString()); }
@Test public void requestUriPreserveSemicolonContent() throws Exception { this.request.setContextPath(""); this.request.setRequestURI("/path;a=b/with/semicolon"); HttpServletRequest actual = filterAndGetWrappedRequest(); assertEquals("", actual.getContextPath()); assertEquals("/path;a=b/with/semicolon", actual.getRequestURI()); assertEquals("http://localhost/path;a=b/with/semicolon", actual.getRequestURL().toString()); }
@Test public void contextPathPreserveEncoding() throws Exception { this.request.setContextPath("/app%20"); this.request.setRequestURI("/app%20/path/"); HttpServletRequest actual = filterAndGetWrappedRequest(); assertEquals("/app%20", actual.getContextPath()); assertEquals("/app%20/path/", actual.getRequestURI()); assertEquals("http://localhost/app%20/path/", actual.getRequestURL().toString()); }
@Test public void requestUri() throws Exception { this.request.addHeader(X_FORWARDED_PREFIX, "/"); this.request.setContextPath("/app"); this.request.setRequestURI("/app/path"); HttpServletRequest actual = filterAndGetWrappedRequest(); assertEquals("", actual.getContextPath()); assertEquals("/path", actual.getRequestURI()); }
@Test public void requestUriWithTrailingSlash() throws Exception { this.request.addHeader(X_FORWARDED_PREFIX, "/"); this.request.setContextPath("/app"); this.request.setRequestURI("/app/path/"); HttpServletRequest actual = filterAndGetWrappedRequest(); assertEquals("", actual.getContextPath()); assertEquals("/path/", actual.getRequestURI()); }
@Test public void requestUriRootUrl() throws Exception { this.request.addHeader(X_FORWARDED_PREFIX, "/"); this.request.setContextPath("/app"); this.request.setRequestURI("/app/"); HttpServletRequest actual = filterAndGetWrappedRequest(); assertEquals("", actual.getContextPath()); assertEquals("/", actual.getRequestURI()); }
@Test public void requestUriEqualsContextPath() throws Exception { this.request.addHeader(X_FORWARDED_PREFIX, "/"); this.request.setContextPath("/app"); this.request.setRequestURI("/app"); HttpServletRequest actual = filterAndGetWrappedRequest(); assertEquals("", actual.getContextPath()); assertEquals("/", actual.getRequestURI()); }
@Test public void caseInsensitiveForwardedPrefix() throws Exception { this.request = new MockHttpServletRequest() { @Override // SPR-14372: make it case-sensitive public String getHeader(String header) { Enumeration<String> names = getHeaderNames(); while (names.hasMoreElements()) { String name = names.nextElement(); if (name.equals(header)) { return super.getHeader(header); } } return null; } }; this.request.addHeader(X_FORWARDED_PREFIX, "/prefix"); this.request.setRequestURI("/path"); HttpServletRequest actual = filterAndGetWrappedRequest(); assertEquals("/prefix/path", actual.getRequestURI()); }