You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2015/11/30 15:02:12 UTC
svn commit: r1717252 - in /tomcat/trunk: java/org/apache/catalina/connector/
test/org/apache/catalina/authenticator/ test/org/apache/catalina/connector/
test/org/apache/catalina/core/ test/org/apache/catalina/filters/
test/org/apache/catalina/realm/ te...
Author: markt
Date: Mon Nov 30 14:02:12 2015
New Revision: 1717252
URL: http://svn.apache.org/viewvc?rev=1717252&view=rev
Log:
Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=56917
All relative URIs to be used with sendRedirect()
Added:
tomcat/trunk/test/org/apache/tomcat/unittest/TesterContext.java
- copied, changed from r1716911, tomcat/trunk/test/org/apache/catalina/core/TesterContext.java
tomcat/trunk/test/org/apache/tomcat/unittest/TesterRequest.java
- copied, changed from r1716911, tomcat/trunk/test/org/apache/catalina/connector/TesterRequest.java
tomcat/trunk/test/org/apache/tomcat/unittest/TesterResponse.java
- copied, changed from r1716911, tomcat/trunk/test/org/apache/catalina/connector/TesterResponse.java
tomcat/trunk/test/org/apache/tomcat/unittest/TesterSessionCookieConfig.java (with props)
Removed:
tomcat/trunk/test/org/apache/catalina/connector/TesterRequest.java
tomcat/trunk/test/org/apache/catalina/connector/TesterResponse.java
tomcat/trunk/test/org/apache/catalina/core/TesterContext.java
Modified:
tomcat/trunk/java/org/apache/catalina/connector/Response.java
tomcat/trunk/test/org/apache/catalina/authenticator/TestDigestAuthenticator.java
tomcat/trunk/test/org/apache/catalina/authenticator/TestJaspicDigestAuthenticator.java
tomcat/trunk/test/org/apache/catalina/connector/TestRequest.java
tomcat/trunk/test/org/apache/catalina/connector/TestResponse.java
tomcat/trunk/test/org/apache/catalina/connector/TestResponsePerformance.java
tomcat/trunk/test/org/apache/catalina/filters/TestRemoteIpFilter.java
tomcat/trunk/test/org/apache/catalina/realm/TestJNDIRealm.java
tomcat/trunk/test/org/apache/catalina/realm/TestRealmBase.java
tomcat/trunk/test/org/apache/catalina/startup/TestWebappServiceLoader.java
tomcat/trunk/test/org/apache/catalina/webresources/TesterWebResourceRoot.java
tomcat/trunk/test/org/apache/tomcat/unittest/TesterServletContext.java
Modified: tomcat/trunk/java/org/apache/catalina/connector/Response.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/Response.java?rev=1717252&r1=1717251&r2=1717252&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/connector/Response.java (original)
+++ tomcat/trunk/java/org/apache/catalina/connector/Response.java Mon Nov 30 14:02:12 2015
@@ -19,6 +19,7 @@ package org.apache.catalina.connector;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.MalformedURLException;
+import java.net.URI;
import java.nio.charset.Charset;
import java.security.AccessController;
import java.security.PrivilegedAction;
@@ -1266,6 +1267,7 @@ public class Response
sendRedirect(location, SC_FOUND);
}
+
/**
* Internal method that allows a redirect to be sent with a status other
* than {@link HttpServletResponse#SC_FOUND} (302). No attempt is made to
@@ -1273,8 +1275,7 @@ public class Response
*/
public void sendRedirect(String location, int status) throws IOException {
if (isCommitted()) {
- throw new IllegalStateException
- (sm.getString("coyoteResponse.sendRedirect.ise"));
+ throw new IllegalStateException(sm.getString("coyoteResponse.sendRedirect.ise"));
}
// Ignore any call from an included servlet
@@ -1287,13 +1288,13 @@ public class Response
// Generate a temporary redirect to the specified location
try {
- String absolute = toAbsolute(location);
+ String locationUri = URI.create(location).toASCIIString();
setStatus(status);
- setHeader("Location", absolute);
+ setHeader("Location", locationUri);
if (getContext().getSendRedirectBody()) {
PrintWriter writer = getWriter();
writer.print(sm.getString("coyoteResponse.sendRedirect.note",
- RequestUtil.filter(absolute)));
+ RequestUtil.filter(locationUri)));
flushBuffer();
}
} catch (IllegalArgumentException e) {
Modified: tomcat/trunk/test/org/apache/catalina/authenticator/TestDigestAuthenticator.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/authenticator/TestDigestAuthenticator.java?rev=1717252&r1=1717251&r2=1717252&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/authenticator/TestDigestAuthenticator.java (original)
+++ tomcat/trunk/test/org/apache/catalina/authenticator/TestDigestAuthenticator.java Mon Nov 30 14:02:12 2015
@@ -32,11 +32,11 @@ import org.junit.Test;
import org.apache.catalina.Context;
import org.apache.catalina.LifecycleException;
import org.apache.catalina.connector.Request;
-import org.apache.catalina.core.TesterContext;
import org.apache.catalina.startup.TesterMapRealm;
import org.apache.catalina.startup.TesterServlet;
import org.apache.catalina.startup.Tomcat;
import org.apache.catalina.startup.TomcatBaseTest;
+import org.apache.tomcat.unittest.TesterContext;
import org.apache.tomcat.util.buf.ByteChunk;
import org.apache.tomcat.util.descriptor.web.LoginConfig;
import org.apache.tomcat.util.descriptor.web.SecurityCollection;
Modified: tomcat/trunk/test/org/apache/catalina/authenticator/TestJaspicDigestAuthenticator.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/authenticator/TestJaspicDigestAuthenticator.java?rev=1717252&r1=1717251&r2=1717252&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/authenticator/TestJaspicDigestAuthenticator.java (original)
+++ tomcat/trunk/test/org/apache/catalina/authenticator/TestJaspicDigestAuthenticator.java Mon Nov 30 14:02:12 2015
@@ -37,11 +37,11 @@ import org.apache.catalina.LifecycleExce
import org.apache.catalina.authenticator.jaspic.JaspicAuthenticator;
import org.apache.catalina.authenticator.jaspic.provider.TomcatAuthConfigProvider;
import org.apache.catalina.connector.Request;
-import org.apache.catalina.core.TesterContext;
import org.apache.catalina.startup.TesterMapRealm;
import org.apache.catalina.startup.TesterServlet;
import org.apache.catalina.startup.Tomcat;
import org.apache.catalina.startup.TomcatBaseTest;
+import org.apache.tomcat.unittest.TesterContext;
import org.apache.tomcat.util.buf.ByteChunk;
import org.apache.tomcat.util.descriptor.web.LoginConfig;
import org.apache.tomcat.util.descriptor.web.SecurityCollection;
Modified: tomcat/trunk/test/org/apache/catalina/connector/TestRequest.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/connector/TestRequest.java?rev=1717252&r1=1717251&r2=1717252&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/connector/TestRequest.java (original)
+++ tomcat/trunk/test/org/apache/catalina/connector/TestRequest.java Mon Nov 30 14:02:12 2015
@@ -52,6 +52,7 @@ import org.apache.catalina.startup.Simpl
import org.apache.catalina.startup.TesterMapRealm;
import org.apache.catalina.startup.Tomcat;
import org.apache.catalina.startup.TomcatBaseTest;
+import org.apache.tomcat.unittest.TesterRequest;
import org.apache.tomcat.util.buf.ByteChunk;
import org.apache.tomcat.util.descriptor.web.FilterDef;
import org.apache.tomcat.util.descriptor.web.FilterMap;
Modified: tomcat/trunk/test/org/apache/catalina/connector/TestResponse.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/connector/TestResponse.java?rev=1717252&r1=1717251&r2=1717252&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/connector/TestResponse.java (original)
+++ tomcat/trunk/test/org/apache/catalina/connector/TestResponse.java Mon Nov 30 14:02:12 2015
@@ -38,6 +38,7 @@ import org.junit.Test;
import org.apache.catalina.Context;
import org.apache.catalina.startup.Tomcat;
import org.apache.catalina.startup.TomcatBaseTest;
+import org.apache.tomcat.unittest.TesterRequest;
import org.apache.tomcat.util.buf.ByteChunk;
/**
@@ -360,7 +361,219 @@ public class TestResponse extends Tomcat
}
+ private void doTestEncodeURL(String location, String expected) {
+ Request req = new TesterRequest(true);
+ req.setRequestedSessionId("1234");
+ req.setRequestedSessionURL(true);
+ Response resp = new Response();
+ resp.setRequest(req);
+
+ String result = resp.encodeURL(location);
+ Assert.assertEquals(expected, result);
+ }
+
+
+ @Test
+ public void testEncodeURL01() throws Exception {
+ doTestEncodeURL("./bar.html", "./bar.html;jsessionid=1234");
+ }
+
+
+ @Test
+ public void testEncodeURL02() throws Exception {
+ doTestEncodeURL(".", ".;jsessionid=1234");
+ }
+
+
+ @Test
+ public void testEncodeURL03() throws Exception {
+ doTestEncodeURL("..", "..;jsessionid=1234");
+ }
+
+
+ @Test
+ public void testEncodeURL04() throws Exception {
+ doTestEncodeURL(".././..", ".././..;jsessionid=1234");
+ }
+
+
+ public void testEncodeURL05() throws Exception {
+ doTestEncodeURL("../../..", "../../..");
+ }
+
+
+ @Test
+ public void testEncodeURL06() throws Exception {
+ doTestEncodeURL("bar.html", "bar.html;jsessionid=1234");
+ }
+
+
+ @Test
+ public void testEncodeURL07() throws Exception {
+ doTestEncodeURL("bar.html?x=/../", "bar.html;jsessionid=1234?x=/../");
+ }
+
+
+ @Test
+ public void testEncodeURL08() throws Exception {
+ doTestEncodeURL("bar.html?x=/../../", "bar.html;jsessionid=1234?x=/../../");
+ }
+
+
+ @Test
+ public void testEncodeURL09() throws Exception {
+ doTestEncodeURL("./.?x=/../../", "./.;jsessionid=1234?x=/../../");
+ }
+
+
+ @Test
+ public void testEncodeURL10() throws Exception {
+ doTestEncodeURL("./..?x=/../../", "./..;jsessionid=1234?x=/../../");
+ }
+
+
+ @Test
+ public void testEncodeURL11() throws Exception {
+ doTestEncodeURL("./..?x=/../..", "./..;jsessionid=1234?x=/../..");
+ }
+
+
+ @Test
+ public void testEncodeURL12() throws Exception {
+ doTestEncodeURL("bar.html#/../", "bar.html;jsessionid=1234#/../");
+ }
+
+
+ @Test
+ public void testEncodeURL13() throws Exception {
+ doTestEncodeURL("bar.html#/../../", "bar.html;jsessionid=1234#/../../");
+ }
+
+
+ @Test
+ public void testEncodeURL14() throws Exception {
+ doTestEncodeURL("./.#/../../", "./.;jsessionid=1234#/../../");
+ }
+
+
+ @Test
+ public void testEncodeURL15() throws Exception {
+ doTestEncodeURL("./..#/../../", "./..;jsessionid=1234#/../../");
+ }
+
+
+ @Test
+ public void testEncodeURL16() throws Exception {
+ doTestEncodeURL("./..#/../..", "./..;jsessionid=1234#/../..");
+ }
+
+
+ private void doTestEncodeRedirectURL(String location, String expected) {
+ Request req = new TesterRequest(true);
+ req.setRequestedSessionId("1234");
+ req.setRequestedSessionURL(true);
+ Response resp = new Response();
+ resp.setRequest(req);
+
+ String result = resp.encodeRedirectURL(location);
+ Assert.assertEquals(expected, result);
+ }
+
+
+ @Test
+ public void testEncodeRedirectURL01() throws Exception {
+ doTestEncodeRedirectURL("./bar.html", "./bar.html;jsessionid=1234");
+ }
+
+
+ @Test
+ public void testEncodeRedirectURL02() throws Exception {
+ doTestEncodeRedirectURL(".", ".;jsessionid=1234");
+ }
+
+
+ @Test
+ public void testEncodeRedirectURL03() throws Exception {
+ doTestEncodeRedirectURL("..", "..;jsessionid=1234");
+ }
+
+
+ @Test
+ public void testEncodeRedirectURL04() throws Exception {
+ doTestEncodeRedirectURL(".././..", ".././..;jsessionid=1234");
+ }
+
+
+ @Test(expected=IllegalArgumentException.class)
+ public void testEncodeRedirectURL05() throws Exception {
+ doTestEncodeRedirectURL("../../..", "throws IAE");
+ }
+
+
+ @Test
+ public void testEncodeRedirectURL06() throws Exception {
+ doTestEncodeRedirectURL("bar.html", "bar.html;jsessionid=1234");
+ }
+
+
+ @Test
+ public void testEncodeRedirectURL07() throws Exception {
+ doTestEncodeRedirectURL("bar.html?x=/../", "bar.html;jsessionid=1234?x=/../");
+ }
+
+
+ @Test
+ public void testEncodeRedirectURL08() throws Exception {
+ doTestEncodeRedirectURL("bar.html?x=/../../", "bar.html;jsessionid=1234?x=/../../");
+ }
+
+
+ @Test
+ public void testEncodeRedirectURL09() throws Exception {
+ doTestEncodeRedirectURL("./.?x=/../../", "./.;jsessionid=1234?x=/../../");
+ }
+
+
+ @Test
+ public void testEncodeRedirectURL10() throws Exception {
+ doTestEncodeRedirectURL("./..?x=/../../", "./..;jsessionid=1234?x=/../../");
+ }
+
+
+ @Test
+ public void testEncodeRedirectURL11() throws Exception {
+ doTestEncodeRedirectURL("./..?x=/../..", "./..;jsessionid=1234?x=/../..");
+ }
+
+
+ @Test
+ public void testEncodeRedirectURL12() throws Exception {
+ doTestEncodeRedirectURL("bar.html#/../", "bar.html;jsessionid=1234#/../");
+ }
+
+
+ @Test
+ public void testEncodeRedirectURL13() throws Exception {
+ doTestEncodeRedirectURL("bar.html#/../../", "bar.html;jsessionid=1234#/../../");
+ }
+
+
+ @Test
+ public void testEncodeRedirectURL14() throws Exception {
+ doTestEncodeRedirectURL("./.#/../../", "./.;jsessionid=1234#/../../");
+ }
+
+
+ @Test
+ public void testEncodeRedirectURL15() throws Exception {
+ doTestEncodeRedirectURL("./..#/../../", "./..;jsessionid=1234#/../../");
+ }
+
+
@Test
+ public void testEncodeRedirectURL16() throws Exception {
+ doTestEncodeURL("./..#/../..", "./..;jsessionid=1234#/../..");
+ } @Test
public void testBug53469a() throws Exception {
Request req = new TesterRequest();
Response resp = new Response();
Modified: tomcat/trunk/test/org/apache/catalina/connector/TestResponsePerformance.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/connector/TestResponsePerformance.java?rev=1717252&r1=1717251&r2=1717252&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/connector/TestResponsePerformance.java (original)
+++ tomcat/trunk/test/org/apache/catalina/connector/TestResponsePerformance.java Mon Nov 30 14:02:12 2015
@@ -22,6 +22,7 @@ import org.junit.Assert;
import org.junit.Test;
import org.apache.catalina.startup.LoggingBaseTest;
+import org.apache.tomcat.unittest.TesterRequest;
public class TestResponsePerformance extends LoggingBaseTest {
Modified: tomcat/trunk/test/org/apache/catalina/filters/TestRemoteIpFilter.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/filters/TestRemoteIpFilter.java?rev=1717252&r1=1717251&r2=1717252&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/filters/TestRemoteIpFilter.java (original)
+++ tomcat/trunk/test/org/apache/catalina/filters/TestRemoteIpFilter.java Mon Nov 30 14:02:12 2015
@@ -49,10 +49,10 @@ import org.apache.catalina.Context;
import org.apache.catalina.LifecycleException;
import org.apache.catalina.connector.Connector;
import org.apache.catalina.connector.Request;
-import org.apache.catalina.connector.TesterResponse;
-import org.apache.catalina.core.TesterContext;
import org.apache.catalina.startup.Tomcat;
import org.apache.catalina.startup.TomcatBaseTest;
+import org.apache.tomcat.unittest.TesterContext;
+import org.apache.tomcat.unittest.TesterResponse;
import org.apache.tomcat.util.descriptor.web.FilterDef;
import org.apache.tomcat.util.descriptor.web.FilterMap;
Modified: tomcat/trunk/test/org/apache/catalina/realm/TestJNDIRealm.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/realm/TestJNDIRealm.java?rev=1717252&r1=1717251&r2=1717252&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/realm/TestJNDIRealm.java (original)
+++ tomcat/trunk/test/org/apache/catalina/realm/TestJNDIRealm.java Mon Nov 30 14:02:12 2015
@@ -35,8 +35,8 @@ import org.junit.Test;
import org.apache.catalina.Context;
import org.apache.catalina.LifecycleException;
-import org.apache.catalina.core.TesterContext;
import org.apache.naming.NameParserImpl;
+import org.apache.tomcat.unittest.TesterContext;
import org.apache.tomcat.util.security.MD5Encoder;
import org.easymock.EasyMock;
Modified: tomcat/trunk/test/org/apache/catalina/realm/TestRealmBase.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/realm/TestRealmBase.java?rev=1717252&r1=1717251&r2=1717252&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/realm/TestRealmBase.java (original)
+++ tomcat/trunk/test/org/apache/catalina/realm/TestRealmBase.java Mon Nov 30 14:02:12 2015
@@ -30,10 +30,10 @@ import org.junit.Test;
import org.apache.catalina.Context;
import org.apache.catalina.connector.Request;
import org.apache.catalina.connector.Response;
-import org.apache.catalina.connector.TesterRequest;
-import org.apache.catalina.connector.TesterResponse;
-import org.apache.catalina.core.TesterContext;
import org.apache.catalina.startup.TesterMapRealm;
+import org.apache.tomcat.unittest.TesterContext;
+import org.apache.tomcat.unittest.TesterRequest;
+import org.apache.tomcat.unittest.TesterResponse;
import org.apache.tomcat.util.descriptor.web.SecurityCollection;
import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
Modified: tomcat/trunk/test/org/apache/catalina/startup/TestWebappServiceLoader.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/startup/TestWebappServiceLoader.java?rev=1717252&r1=1717251&r2=1717252&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/startup/TestWebappServiceLoader.java (original)
+++ tomcat/trunk/test/org/apache/catalina/startup/TestWebappServiceLoader.java Mon Nov 30 14:02:12 2015
@@ -32,7 +32,7 @@ import org.junit.Before;
import org.junit.Test;
import org.apache.catalina.Context;
-import org.apache.catalina.core.TesterContext;
+import org.apache.tomcat.unittest.TesterContext;
import org.easymock.EasyMock;
import org.easymock.IMocksControl;
Modified: tomcat/trunk/test/org/apache/catalina/webresources/TesterWebResourceRoot.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/webresources/TesterWebResourceRoot.java?rev=1717252&r1=1717251&r2=1717252&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/webresources/TesterWebResourceRoot.java (original)
+++ tomcat/trunk/test/org/apache/catalina/webresources/TesterWebResourceRoot.java Mon Nov 30 14:02:12 2015
@@ -22,7 +22,7 @@ import org.apache.catalina.Context;
import org.apache.catalina.LifecycleException;
import org.apache.catalina.LifecycleListener;
import org.apache.catalina.LifecycleState;
-import org.apache.catalina.core.TesterContext;
+import org.apache.tomcat.unittest.TesterContext;
/**
* Minimal implementation for use in unit tests that supports main and pre
Copied: tomcat/trunk/test/org/apache/tomcat/unittest/TesterContext.java (from r1716911, tomcat/trunk/test/org/apache/catalina/core/TesterContext.java)
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/unittest/TesterContext.java?p2=tomcat/trunk/test/org/apache/tomcat/unittest/TesterContext.java&p1=tomcat/trunk/test/org/apache/catalina/core/TesterContext.java&r1=1716911&r2=1717252&rev=1717252&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/core/TesterContext.java (original)
+++ tomcat/trunk/test/org/apache/tomcat/unittest/TesterContext.java Mon Nov 30 14:02:12 2015
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.catalina.core;
+package org.apache.tomcat.unittest;
import java.beans.PropertyChangeListener;
import java.io.File;
@@ -588,9 +588,13 @@ public class TesterContext implements Co
// NO-OP
}
+ private ServletContext servletContext;
@Override
public ServletContext getServletContext() {
- return null;
+ return servletContext;
+ }
+ public void setServletContext(ServletContext servletContext) {
+ this.servletContext = servletContext;
}
@Override
Copied: tomcat/trunk/test/org/apache/tomcat/unittest/TesterRequest.java (from r1716911, tomcat/trunk/test/org/apache/catalina/connector/TesterRequest.java)
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/unittest/TesterRequest.java?p2=tomcat/trunk/test/org/apache/tomcat/unittest/TesterRequest.java&p1=tomcat/trunk/test/org/apache/catalina/connector/TesterRequest.java&r1=1716911&r2=1717252&rev=1717252&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/connector/TesterRequest.java (original)
+++ tomcat/trunk/test/org/apache/tomcat/unittest/TesterRequest.java Mon Nov 30 14:02:12 2015
@@ -14,16 +14,51 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.catalina.connector;
+package org.apache.tomcat.unittest;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Set;
+
+import javax.servlet.ServletContext;
+import javax.servlet.SessionTrackingMode;
+
+import org.apache.catalina.Context;
+import org.apache.catalina.connector.Request;
+import org.apache.catalina.session.StandardSession;
public class TesterRequest extends Request {
+
+ private final TesterContext context;
+ private final TesterServletContext servletContext;
+
+
+ public TesterRequest() {
+ this(false);
+ }
+
+
+ public TesterRequest(boolean withSession) {
+ context = new TesterContext();
+ servletContext = new TesterServletContext();
+ context.setServletContext(servletContext);
+ if (withSession) {
+ Set<SessionTrackingMode> modes = new HashSet<>();
+ modes.add(SessionTrackingMode.URL);
+ modes.add(SessionTrackingMode.COOKIE);
+ servletContext.setSessionTrackingModes(modes);
+ session = new StandardSession(null);
+ session.setId("1234", false);
+ session.setValid(true);
+ }
+ }
+
+
@Override
public String getScheme() {
return "http";
@@ -39,11 +74,31 @@ public class TesterRequest extends Reque
return 8080;
}
+
@Override
- public String getDecodedRequestURI() {
+ public String getRequestURI() {
return "/level1/level2/foo.html";
}
+ @Override
+ public String getDecodedRequestURI() {
+ // Decoding not required
+ return getRequestURI();
+ }
+
+
+ @Override
+ public Context getContext() {
+ return context;
+ }
+
+
+ @Override
+ public ServletContext getServletContext() {
+ return servletContext;
+ }
+
+
private String method;
public void setMethod(String method) {
this.method = method;
@@ -54,7 +109,7 @@ public class TesterRequest extends Reque
}
private final Map<String,List<String>> headers = new HashMap<>();
- protected void addHeader(String name, String value) {
+ public void addHeader(String name, String value) {
List<String> values = headers.get(name);
if (values == null) {
values = new ArrayList<>();
Copied: tomcat/trunk/test/org/apache/tomcat/unittest/TesterResponse.java (from r1716911, tomcat/trunk/test/org/apache/catalina/connector/TesterResponse.java)
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/unittest/TesterResponse.java?p2=tomcat/trunk/test/org/apache/tomcat/unittest/TesterResponse.java&p1=tomcat/trunk/test/org/apache/catalina/connector/TesterResponse.java&r1=1716911&r2=1717252&rev=1717252&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/connector/TesterResponse.java (original)
+++ tomcat/trunk/test/org/apache/tomcat/unittest/TesterResponse.java Mon Nov 30 14:02:12 2015
@@ -14,10 +14,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.catalina.connector;
+package org.apache.tomcat.unittest;
import java.io.IOException;
+import org.apache.catalina.connector.Response;
+
/**
* Minimal changes to Response to enable tests that use this class to operate
* correctly.
Modified: tomcat/trunk/test/org/apache/tomcat/unittest/TesterServletContext.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/unittest/TesterServletContext.java?rev=1717252&r1=1717251&r2=1717252&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/tomcat/unittest/TesterServletContext.java (original)
+++ tomcat/trunk/test/org/apache/tomcat/unittest/TesterServletContext.java Mon Nov 30 14:02:12 2015
@@ -22,6 +22,7 @@ import java.net.URL;
import java.util.Collections;
import java.util.Enumeration;
import java.util.EventListener;
+import java.util.HashSet;
import java.util.Map;
import java.util.Set;
@@ -38,7 +39,6 @@ import javax.servlet.SessionTrackingMode
import javax.servlet.descriptor.JspConfigDescriptor;
import org.apache.catalina.core.ApplicationFilterRegistration;
-import org.apache.catalina.core.TesterContext;
import org.apache.tomcat.util.descriptor.web.FilterDef;
public class TesterServletContext implements ServletContext {
@@ -278,15 +278,18 @@ public class TesterServletContext implem
throw new RuntimeException("Not implemented");
}
+ private SessionCookieConfig sessionCookieConfig = new TesterSessionCookieConfig();
@Override
public SessionCookieConfig getSessionCookieConfig() {
- throw new RuntimeException("Not implemented");
+ return sessionCookieConfig;
}
+ private final Set<SessionTrackingMode> sessionTrackingModes = new HashSet<>();
@Override
public void setSessionTrackingModes(
Set<SessionTrackingMode> sessionTrackingModes) {
- throw new RuntimeException("Not implemented");
+ this.sessionTrackingModes.clear();
+ this.sessionTrackingModes.addAll(sessionTrackingModes);
}
@Override
@@ -296,7 +299,7 @@ public class TesterServletContext implem
@Override
public Set<SessionTrackingMode> getEffectiveSessionTrackingModes() {
- throw new RuntimeException("Not implemented");
+ return sessionTrackingModes;
}
@Override
Added: tomcat/trunk/test/org/apache/tomcat/unittest/TesterSessionCookieConfig.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/unittest/TesterSessionCookieConfig.java?rev=1717252&view=auto
==============================================================================
--- tomcat/trunk/test/org/apache/tomcat/unittest/TesterSessionCookieConfig.java (added)
+++ tomcat/trunk/test/org/apache/tomcat/unittest/TesterSessionCookieConfig.java Mon Nov 30 14:02:12 2015
@@ -0,0 +1,93 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tomcat.unittest;
+
+import javax.servlet.SessionCookieConfig;
+
+public class TesterSessionCookieConfig implements SessionCookieConfig {
+
+ private String name;
+ @Override
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ @Override
+ public void setDomain(String domain) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public String getDomain() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void setPath(String path) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public String getPath() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void setComment(String comment) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public String getComment() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void setHttpOnly(boolean httpOnly) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean isHttpOnly() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void setSecure(boolean secure) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean isSecure() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void setMaxAge(int MaxAge) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public int getMaxAge() {
+ throw new UnsupportedOperationException();
+ }
+}
Propchange: tomcat/trunk/test/org/apache/tomcat/unittest/TesterSessionCookieConfig.java
------------------------------------------------------------------------------
svn:eol-style = native
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org