tests cleanup
This commit is contained in:
parent
0b54fa0bc7
commit
dd2f9d73b6
|
@ -482,72 +482,72 @@ public class ConstraintTest
|
|||
_server.start();
|
||||
|
||||
String response;
|
||||
response = _connector.getResponses("GET /ctx/noauth/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/noauth/info HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/forbid/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/forbid/info HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 403 Forbidden"));
|
||||
response = _connector.getResponses("GET /ctx/auth/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/auth/info HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 401 Unauthorized"));
|
||||
Assert.assertThat(response, Matchers.containsString("WWW-Authenticate: basic realm=\"TestRealm\""));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
"Authorization: Basic " + B64Code.encode("user:wrong") + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 401 Unauthorized"));
|
||||
Assert.assertThat(response, Matchers.containsString("WWW-Authenticate: basic realm=\"TestRealm\""));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
"Authorization: Basic " + B64Code.encode("user:password") + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
|
||||
// test admin
|
||||
response = _connector.getResponses("GET /ctx/admin/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/admin/info HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 401 Unauthorized"));
|
||||
Assert.assertThat(response, Matchers.containsString("WWW-Authenticate: basic realm=\"TestRealm\""));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/admin/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/admin/info HTTP/1.0\r\n" +
|
||||
"Authorization: Basic " + B64Code.encode("admin:wrong") + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 401 Unauthorized"));
|
||||
Assert.assertThat(response, Matchers.containsString("WWW-Authenticate: basic realm=\"TestRealm\""));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/admin/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/admin/info HTTP/1.0\r\n" +
|
||||
"Authorization: Basic " + B64Code.encode("user:password") + "\r\n" +
|
||||
"\r\n");
|
||||
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 403 "));
|
||||
Assert.assertThat(response, Matchers.containsString("!role"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/admin/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/admin/info HTTP/1.0\r\n" +
|
||||
"Authorization: Basic " + B64Code.encode("admin:password") + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/admin/relax/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/admin/relax/info HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
|
||||
//check GET is in role administrator
|
||||
response = _connector.getResponses("GET /ctx/omit/x HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/omit/x HTTP/1.0\r\n" +
|
||||
"Authorization: Basic " + B64Code.encode("admin:password") + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
|
||||
//check POST is in role user
|
||||
response = _connector.getResponses("POST /ctx/omit/x HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("POST /ctx/omit/x HTTP/1.0\r\n" +
|
||||
"Authorization: Basic " + B64Code.encode("user2:password") + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
|
||||
//check POST can be in role foo too
|
||||
response = _connector.getResponses("POST /ctx/omit/x HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("POST /ctx/omit/x HTTP/1.0\r\n" +
|
||||
"Authorization: Basic " + B64Code.encode("user3:password") + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
|
||||
//check HEAD cannot be in role user
|
||||
response = _connector.getResponses("HEAD /ctx/omit/x HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("HEAD /ctx/omit/x HTTP/1.0\r\n" +
|
||||
"Authorization: Basic " + B64Code.encode("user2:password") + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 403 "));
|
||||
|
@ -606,12 +606,12 @@ public class ConstraintTest
|
|||
_server.start();
|
||||
|
||||
String response;
|
||||
response = _connector.getResponses("GET /ctx/noauth/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/noauth/info HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/forbid/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/forbid/info HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 403 Forbidden"));
|
||||
response = _connector.getResponses("GET /ctx/auth/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/auth/info HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 401 Unauthorized"));
|
||||
Assert.assertThat(response, Matchers.containsString("WWW-Authenticate: Digest realm=\"TestRealm\""));
|
||||
|
||||
|
@ -623,7 +623,7 @@ public class ConstraintTest
|
|||
|
||||
//wrong password
|
||||
String digest= digest(nonce,"user","WRONG","/ctx/auth/info","1");
|
||||
response = _connector.getResponses("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
"Authorization: Digest username=\"user\", qop=auth, cnonce=\"1234567890\", uri=\"/ctx/auth/info\", realm=\"TestRealm\", "+
|
||||
"nc=1, "+
|
||||
"nonce=\""+nonce+"\", "+
|
||||
|
@ -633,7 +633,7 @@ public class ConstraintTest
|
|||
|
||||
// right password
|
||||
digest= digest(nonce,"user","password","/ctx/auth/info","2");
|
||||
response = _connector.getResponses("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
"Authorization: Digest username=\"user\", qop=auth, cnonce=\"1234567890\", uri=\"/ctx/auth/info\", realm=\"TestRealm\", "+
|
||||
"nc=2, "+
|
||||
"nonce=\""+nonce+"\", "+
|
||||
|
@ -644,7 +644,7 @@ public class ConstraintTest
|
|||
|
||||
// once only
|
||||
digest= digest(nonce,"user","password","/ctx/auth/info","2");
|
||||
response = _connector.getResponses("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
"Authorization: Digest username=\"user\", qop=auth, cnonce=\"1234567890\", uri=\"/ctx/auth/info\", realm=\"TestRealm\", "+
|
||||
"nc=2, "+
|
||||
"nonce=\""+nonce+"\", "+
|
||||
|
@ -654,7 +654,7 @@ public class ConstraintTest
|
|||
|
||||
// increasing
|
||||
digest= digest(nonce,"user","password","/ctx/auth/info","4");
|
||||
response = _connector.getResponses("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
"Authorization: Digest username=\"user\", qop=auth, cnonce=\"1234567890\", uri=\"/ctx/auth/info\", realm=\"TestRealm\", "+
|
||||
"nc=4, "+
|
||||
"nonce=\""+nonce+"\", "+
|
||||
|
@ -664,7 +664,7 @@ public class ConstraintTest
|
|||
|
||||
// out of order
|
||||
digest= digest(nonce,"user","password","/ctx/auth/info","3");
|
||||
response = _connector.getResponses("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
"Authorization: Digest username=\"user\", qop=auth, cnonce=\"1234567890\", uri=\"/ctx/auth/info\", realm=\"TestRealm\", "+
|
||||
"nc=3, "+
|
||||
"nonce=\""+nonce+"\", "+
|
||||
|
@ -674,7 +674,7 @@ public class ConstraintTest
|
|||
|
||||
// stale
|
||||
digest= digest(nonce,"user","password","/ctx/auth/info","5");
|
||||
response = _connector.getResponses("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
"Authorization: Digest username=\"user\", qop=auth, cnonce=\"1234567890\", uri=\"/ctx/auth/info\", realm=\"TestRealm\", "+
|
||||
"nc=5, "+
|
||||
"nonce=\""+nonce+"\", "+
|
||||
|
@ -693,20 +693,20 @@ public class ConstraintTest
|
|||
|
||||
String response;
|
||||
|
||||
response = _connector.getResponses("GET /ctx/noauth/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/noauth/info HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/forbid/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/forbid/info HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 403 Forbidden"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/auth/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/auth/info HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.containsString("Cache-Control: no-cache"));
|
||||
Assert.assertThat(response, Matchers.containsString("Expires"));
|
||||
Assert.assertThat(response, Matchers.containsString("URI=/ctx/testLoginPage"));
|
||||
|
||||
String session = response.substring(response.indexOf("JSESSIONID=") + 11, response.indexOf(";Path=/ctx"));
|
||||
|
||||
response = _connector.getResponses("POST /ctx/j_security_check HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("POST /ctx/j_security_check HTTP/1.0\r\n" +
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"Content-Type: application/x-www-form-urlencoded\r\n" +
|
||||
"Content-Length: 31\r\n" +
|
||||
|
@ -714,7 +714,7 @@ public class ConstraintTest
|
|||
"j_username=user&j_password=wrong\r\n");
|
||||
Assert.assertThat(response, Matchers.containsString("testErrorPage"));
|
||||
|
||||
response = _connector.getResponses("POST /ctx/j_security_check HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("POST /ctx/j_security_check HTTP/1.0\r\n" +
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"Content-Type: application/x-www-form-urlencoded\r\n" +
|
||||
"Content-Length: 35\r\n" +
|
||||
|
@ -726,13 +726,13 @@ public class ConstraintTest
|
|||
Assert.assertThat(response, Matchers.containsString("/ctx/auth/info"));
|
||||
session = response.substring(response.indexOf("JSESSIONID=") + 11, response.indexOf(";Path=/ctx"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
|
||||
|
||||
response = _connector.getResponses("GET /ctx/admin/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/admin/info HTTP/1.0\r\n" +
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 403"));
|
||||
|
@ -747,24 +747,24 @@ public class ConstraintTest
|
|||
|
||||
String response;
|
||||
|
||||
response = _connector.getResponses("GET /ctx/noauth/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/noauth/info HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/forbid/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/forbid/info HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 403 Forbidden"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/auth/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/auth/info HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.containsString(" 302 Found"));
|
||||
Assert.assertThat(response, Matchers.containsString("/ctx/testLoginPage"));
|
||||
String session = response.substring(response.indexOf("JSESSIONID=") + 11, response.indexOf(";Path=/ctx"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/testLoginPage HTTP/1.0\r\n"+
|
||||
response = _connector.getResponse("GET /ctx/testLoginPage HTTP/1.0\r\n"+
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.containsString(" 200 OK"));
|
||||
Assert.assertThat(response, Matchers.containsString("URI=/ctx/testLoginPage"));
|
||||
|
||||
response = _connector.getResponses("POST /ctx/j_security_check HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("POST /ctx/j_security_check HTTP/1.0\r\n" +
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"Content-Type: application/x-www-form-urlencoded\r\n" +
|
||||
"Content-Length: 32\r\n" +
|
||||
|
@ -772,7 +772,7 @@ public class ConstraintTest
|
|||
"j_username=user&j_password=wrong");
|
||||
Assert.assertThat(response, Matchers.containsString("Location"));
|
||||
|
||||
response = _connector.getResponses("POST /ctx/j_security_check HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("POST /ctx/j_security_check HTTP/1.0\r\n" +
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"Content-Type: application/x-www-form-urlencoded\r\n" +
|
||||
"Content-Length: 35\r\n" +
|
||||
|
@ -783,12 +783,12 @@ public class ConstraintTest
|
|||
Assert.assertThat(response, Matchers.containsString("/ctx/auth/info"));
|
||||
session = response.substring(response.indexOf("JSESSIONID=") + 11, response.indexOf(";Path=/ctx"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/admin/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/admin/info HTTP/1.0\r\n" +
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 403"));
|
||||
|
@ -803,13 +803,13 @@ public class ConstraintTest
|
|||
|
||||
String response;
|
||||
|
||||
response = _connector.getResponses("GET /ctx/noauth/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/noauth/info HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/forbid/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/forbid/info HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 403 Forbidden"));
|
||||
|
||||
response = _connector.getResponses("POST /ctx/auth/info HTTP/1.0\r\n"+
|
||||
response = _connector.getResponse("POST /ctx/auth/info HTTP/1.0\r\n"+
|
||||
"Content-Type: application/x-www-form-urlencoded\r\n" +
|
||||
"Content-Length: 27\r\n" +
|
||||
"\r\n" +
|
||||
|
@ -818,13 +818,13 @@ public class ConstraintTest
|
|||
Assert.assertThat(response, Matchers.containsString("/ctx/testLoginPage"));
|
||||
String session = response.substring(response.indexOf("JSESSIONID=") + 11, response.indexOf(";Path=/ctx"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/testLoginPage HTTP/1.0\r\n"+
|
||||
response = _connector.getResponse("GET /ctx/testLoginPage HTTP/1.0\r\n"+
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.containsString(" 200 OK"));
|
||||
Assert.assertThat(response, Matchers.containsString("URI=/ctx/testLoginPage"));
|
||||
|
||||
response = _connector.getResponses("POST /ctx/j_security_check HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("POST /ctx/j_security_check HTTP/1.0\r\n" +
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"Content-Type: application/x-www-form-urlencoded\r\n" +
|
||||
"Content-Length: 31\r\n" +
|
||||
|
@ -833,7 +833,7 @@ public class ConstraintTest
|
|||
|
||||
Assert.assertThat(response, Matchers.containsString("Location"));
|
||||
|
||||
response = _connector.getResponses("POST /ctx/j_security_check HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("POST /ctx/j_security_check HTTP/1.0\r\n" +
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"Content-Type: application/x-www-form-urlencoded\r\n" +
|
||||
"Content-Length: 35\r\n" +
|
||||
|
@ -845,20 +845,20 @@ public class ConstraintTest
|
|||
session = response.substring(response.indexOf("JSESSIONID=") + 11, response.indexOf(";Path=/ctx"));
|
||||
|
||||
// sneak in other request
|
||||
response = _connector.getResponses("GET /ctx/auth/other HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/auth/other HTTP/1.0\r\n" +
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
Assert.assertTrue(!response.contains("test_value"));
|
||||
|
||||
// retry post as GET
|
||||
response = _connector.getResponses("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
Assert.assertTrue(response.contains("test_value"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/admin/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/admin/info HTTP/1.0\r\n" +
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 403"));
|
||||
|
@ -873,31 +873,31 @@ public class ConstraintTest
|
|||
|
||||
String response;
|
||||
|
||||
response = _connector.getResponses("GET /ctx/noauth/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/noauth/info HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/forbid/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/forbid/info HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 403 Forbidden"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/auth/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/auth/info HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.containsString(" 302 Found"));
|
||||
Assert.assertThat(response, Matchers.containsString("/ctx/testLoginPage"));
|
||||
int jsession=response.indexOf(";jsessionid=");
|
||||
String session = response.substring(jsession + 12, response.indexOf("\r\n",jsession));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/testLoginPage;jsessionid="+session+";other HTTP/1.0\r\n"+
|
||||
response = _connector.getResponse("GET /ctx/testLoginPage;jsessionid="+session+";other HTTP/1.0\r\n"+
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.containsString(" 200 OK"));
|
||||
Assert.assertThat(response, Matchers.containsString("URI=/ctx/testLoginPage"));
|
||||
|
||||
response = _connector.getResponses("POST /ctx/j_security_check;jsessionid="+session+";other HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("POST /ctx/j_security_check;jsessionid="+session+";other HTTP/1.0\r\n" +
|
||||
"Content-Type: application/x-www-form-urlencoded\r\n" +
|
||||
"Content-Length: 31\r\n" +
|
||||
"\r\n" +
|
||||
"j_username=user&j_password=wrong\r\n");
|
||||
Assert.assertThat(response, Matchers.containsString("Location"));
|
||||
|
||||
response = _connector.getResponses("POST /ctx/j_security_check;jsessionid="+session+";other HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("POST /ctx/j_security_check;jsessionid="+session+";other HTTP/1.0\r\n" +
|
||||
"Content-Type: application/x-www-form-urlencoded\r\n" +
|
||||
"Content-Length: 35\r\n" +
|
||||
"\r\n" +
|
||||
|
@ -907,11 +907,11 @@ public class ConstraintTest
|
|||
Assert.assertThat(response, Matchers.containsString("/ctx/auth/info"));
|
||||
session = response.substring(response.indexOf("JSESSIONID=") + 11, response.indexOf(";Path=/ctx"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/auth/info;jsessionid="+session+";other HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/auth/info;jsessionid="+session+";other HTTP/1.0\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/admin/info;jsessionid="+session+";other HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/admin/info;jsessionid="+session+";other HTTP/1.0\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 403"));
|
||||
Assert.assertThat(response, Matchers.containsString("!role"));
|
||||
|
@ -924,58 +924,58 @@ public class ConstraintTest
|
|||
_server.start();
|
||||
|
||||
String response;
|
||||
response = _connector.getResponses("GET /ctx/noauth/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/noauth/info HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/forbid/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/forbid/info HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 403 Forbidden"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/auth/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/auth/info HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 401 Unauthorized"));
|
||||
Assert.assertThat(response, Matchers.containsString("WWW-Authenticate: basic realm=\"TestRealm\""));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
"Authorization: Basic " + B64Code.encode("user:wrong") + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 401 Unauthorized"));
|
||||
Assert.assertThat(response, Matchers.containsString("WWW-Authenticate: basic realm=\"TestRealm\""));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
"Authorization: Basic " + B64Code.encode("user3:password") + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 403"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
"Authorization: Basic " + B64Code.encode("user2:password") + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
|
||||
|
||||
// test admin
|
||||
response = _connector.getResponses("GET /ctx/admin/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/admin/info HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 401 Unauthorized"));
|
||||
Assert.assertThat(response, Matchers.containsString("WWW-Authenticate: basic realm=\"TestRealm\""));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/admin/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/admin/info HTTP/1.0\r\n" +
|
||||
"Authorization: Basic " + B64Code.encode("admin:wrong") + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 401 Unauthorized"));
|
||||
Assert.assertThat(response, Matchers.containsString("WWW-Authenticate: basic realm=\"TestRealm\""));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/admin/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/admin/info HTTP/1.0\r\n" +
|
||||
"Authorization: Basic " + B64Code.encode("user:password") + "\r\n" +
|
||||
"\r\n");
|
||||
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 403 "));
|
||||
Assert.assertThat(response, Matchers.containsString("!role"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/admin/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/admin/info HTTP/1.0\r\n" +
|
||||
"Authorization: Basic " + B64Code.encode("admin:password") + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
|
||||
|
||||
response = _connector.getResponses("GET /ctx/admin/relax/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/admin/relax/info HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
}
|
||||
|
||||
|
@ -988,13 +988,13 @@ public class ConstraintTest
|
|||
|
||||
String response;
|
||||
|
||||
response = _connector.getResponses("GET /ctx/noauth/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/noauth/info HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/forbid/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/forbid/info HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 403 Forbidden"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/auth/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/auth/info HTTP/1.0\r\n\r\n");
|
||||
// assertThat(response,containsString(" 302 Found"));
|
||||
// assertThat(response,containsString("/ctx/testLoginPage"));
|
||||
Assert.assertThat(response, Matchers.containsString("Cache-Control: no-cache"));
|
||||
|
@ -1003,7 +1003,7 @@ public class ConstraintTest
|
|||
|
||||
String session = response.substring(response.indexOf("JSESSIONID=") + 11, response.indexOf(";Path=/ctx"));
|
||||
|
||||
response = _connector.getResponses("POST /ctx/j_security_check HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("POST /ctx/j_security_check HTTP/1.0\r\n" +
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"Content-Type: application/x-www-form-urlencoded\r\n" +
|
||||
"Content-Length: 31\r\n" +
|
||||
|
@ -1012,7 +1012,7 @@ public class ConstraintTest
|
|||
// assertThat(response,containsString("Location"));
|
||||
Assert.assertThat(response, Matchers.containsString("testErrorPage"));
|
||||
|
||||
response = _connector.getResponses("POST /ctx/j_security_check HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("POST /ctx/j_security_check HTTP/1.0\r\n" +
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"Content-Type: application/x-www-form-urlencoded\r\n" +
|
||||
"Content-Length: 36\r\n" +
|
||||
|
@ -1023,13 +1023,13 @@ public class ConstraintTest
|
|||
Assert.assertThat(response, Matchers.containsString("/ctx/auth/info"));
|
||||
session = response.substring(response.indexOf("JSESSIONID=") + 11, response.indexOf(";Path=/ctx"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 403"));
|
||||
Assert.assertThat(response, Matchers.containsString("!role"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/admin/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/admin/info HTTP/1.0\r\n" +
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 403"));
|
||||
|
@ -1038,12 +1038,12 @@ public class ConstraintTest
|
|||
|
||||
|
||||
// log in again as user2
|
||||
response = _connector.getResponses("GET /ctx/auth/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/auth/info HTTP/1.0\r\n\r\n");
|
||||
// assertThat(response,startsWith("HTTP/1.1 302 "));
|
||||
// assertThat(response,containsString("testLoginPage"));
|
||||
session = response.substring(response.indexOf("JSESSIONID=") + 11, response.indexOf(";Path=/ctx"));
|
||||
|
||||
response = _connector.getResponses("POST /ctx/j_security_check HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("POST /ctx/j_security_check HTTP/1.0\r\n" +
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"Content-Type: application/x-www-form-urlencoded\r\n" +
|
||||
"Content-Length: 36\r\n" +
|
||||
|
@ -1054,12 +1054,12 @@ public class ConstraintTest
|
|||
Assert.assertThat(response, Matchers.containsString("/ctx/auth/info"));
|
||||
session = response.substring(response.indexOf("JSESSIONID=") + 11, response.indexOf(";Path=/ctx"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/admin/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/admin/info HTTP/1.0\r\n" +
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 403"));
|
||||
|
@ -1068,12 +1068,12 @@ public class ConstraintTest
|
|||
|
||||
|
||||
// log in again as admin
|
||||
response = _connector.getResponses("GET /ctx/auth/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/auth/info HTTP/1.0\r\n\r\n");
|
||||
// assertThat(response,startsWith("HTTP/1.1 302 "));
|
||||
// assertThat(response,containsString("testLoginPage"));
|
||||
session = response.substring(response.indexOf("JSESSIONID=") + 11, response.indexOf(";Path=/ctx"));
|
||||
|
||||
response = _connector.getResponses("POST /ctx/j_security_check HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("POST /ctx/j_security_check HTTP/1.0\r\n" +
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"Content-Type: application/x-www-form-urlencoded\r\n" +
|
||||
"Content-Length: 36\r\n" +
|
||||
|
@ -1084,12 +1084,12 @@ public class ConstraintTest
|
|||
Assert.assertThat(response, Matchers.containsString("/ctx/auth/info"));
|
||||
session = response.substring(response.indexOf("JSESSIONID=") + 11, response.indexOf(";Path=/ctx"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/admin/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/admin/info HTTP/1.0\r\n" +
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
|
@ -1103,19 +1103,19 @@ public class ConstraintTest
|
|||
|
||||
String response;
|
||||
|
||||
response = _connector.getResponses("GET /ctx/noauth/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/noauth/info HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/forbid/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/forbid/info HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 403 Forbidden"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/auth/info HTTP/1.0\r\nHost:wibble.com:8888\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/auth/info HTTP/1.0\r\nHost:wibble.com:8888\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.containsString(" 302 Found"));
|
||||
Assert.assertThat(response, Matchers.containsString("http://wibble.com:8888/ctx/testLoginPage"));
|
||||
|
||||
String session = response.substring(response.indexOf("JSESSIONID=") + 11, response.indexOf(";Path=/ctx"));
|
||||
|
||||
response = _connector.getResponses("POST /ctx/j_security_check HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("POST /ctx/j_security_check HTTP/1.0\r\n" +
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"Content-Type: application/x-www-form-urlencoded\r\n" +
|
||||
"Content-Length: 31\r\n" +
|
||||
|
@ -1123,7 +1123,7 @@ public class ConstraintTest
|
|||
"j_username=user&j_password=wrong\r\n");
|
||||
Assert.assertThat(response, Matchers.containsString("Location"));
|
||||
|
||||
response = _connector.getResponses("POST /ctx/j_security_check HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("POST /ctx/j_security_check HTTP/1.0\r\n" +
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"Content-Type: application/x-www-form-urlencoded\r\n" +
|
||||
"Content-Length: 36\r\n" +
|
||||
|
@ -1134,13 +1134,13 @@ public class ConstraintTest
|
|||
Assert.assertThat(response, Matchers.containsString("/ctx/auth/info"));
|
||||
session = response.substring(response.indexOf("JSESSIONID=") + 11, response.indexOf(";Path=/ctx"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 403"));
|
||||
Assert.assertThat(response, Matchers.containsString("!role"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/admin/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/admin/info HTTP/1.0\r\n" +
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 403"));
|
||||
|
@ -1149,12 +1149,12 @@ public class ConstraintTest
|
|||
|
||||
|
||||
// log in again as user2
|
||||
response = _connector.getResponses("GET /ctx/auth/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/auth/info HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 302 "));
|
||||
Assert.assertThat(response, Matchers.containsString("testLoginPage"));
|
||||
session = response.substring(response.indexOf("JSESSIONID=") + 11, response.indexOf(";Path=/ctx"));
|
||||
|
||||
response = _connector.getResponses("POST /ctx/j_security_check HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("POST /ctx/j_security_check HTTP/1.0\r\n" +
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"Content-Type: application/x-www-form-urlencoded\r\n" +
|
||||
"Content-Length: 36\r\n" +
|
||||
|
@ -1166,13 +1166,13 @@ public class ConstraintTest
|
|||
session = response.substring(response.indexOf("JSESSIONID=") + 11, response.indexOf(";Path=/ctx"));
|
||||
|
||||
|
||||
response = _connector.getResponses("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
|
||||
//check user2 does not have right role to access /admin/*
|
||||
response = _connector.getResponses("GET /ctx/admin/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/admin/info HTTP/1.0\r\n" +
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 403"));
|
||||
|
@ -1180,12 +1180,12 @@ public class ConstraintTest
|
|||
|
||||
//log in as user3, who doesn't have a valid role, but we are checking a constraint
|
||||
//of ** which just means they have to be authenticated
|
||||
response = _connector.getResponses("GET /ctx/starstar/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/starstar/info HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 302 "));
|
||||
Assert.assertThat(response, Matchers.containsString("testLoginPage"));
|
||||
session = response.substring(response.indexOf("JSESSIONID=") + 11, response.indexOf(";Path=/ctx"));
|
||||
|
||||
response = _connector.getResponses("POST /ctx/j_security_check HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("POST /ctx/j_security_check HTTP/1.0\r\n" +
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"Content-Type: application/x-www-form-urlencoded\r\n" +
|
||||
"Content-Length: 36\r\n" +
|
||||
|
@ -1196,19 +1196,19 @@ public class ConstraintTest
|
|||
Assert.assertThat(response, Matchers.containsString("/ctx/starstar/info"));
|
||||
session = response.substring(response.indexOf("JSESSIONID=") + 11, response.indexOf(";Path=/ctx"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/starstar/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/starstar/info HTTP/1.0\r\n" +
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
|
||||
|
||||
// log in again as admin
|
||||
response = _connector.getResponses("GET /ctx/auth/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/auth/info HTTP/1.0\r\n\r\n");
|
||||
// assertThat(response,startsWith("HTTP/1.1 302 "));
|
||||
// assertThat(response,containsString("testLoginPage"));
|
||||
session = response.substring(response.indexOf("JSESSIONID=") + 11, response.indexOf(";Path=/ctx"));
|
||||
|
||||
response = _connector.getResponses("POST /ctx/j_security_check HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("POST /ctx/j_security_check HTTP/1.0\r\n" +
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"Content-Type: application/x-www-form-urlencoded\r\n" +
|
||||
"Content-Length: 36\r\n" +
|
||||
|
@ -1219,12 +1219,12 @@ public class ConstraintTest
|
|||
Assert.assertThat(response, Matchers.containsString("/ctx/auth/info"));
|
||||
session = response.substring(response.indexOf("JSESSIONID=") + 11, response.indexOf(";Path=/ctx"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/admin/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/admin/info HTTP/1.0\r\n" +
|
||||
"Cookie: JSESSIONID=" + session + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
|
@ -1240,32 +1240,32 @@ public class ConstraintTest
|
|||
|
||||
String response;
|
||||
|
||||
response = _connector.getResponses("GET /ctx/data/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/data/info HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 403"));
|
||||
|
||||
_config.setSecurePort(8443);
|
||||
_config.setSecureScheme("https");
|
||||
|
||||
response = _connector.getResponses("GET /ctx/data/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/data/info HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 302 Found"));
|
||||
Assert.assertTrue(response.indexOf("Location") > 0);
|
||||
Assert.assertTrue(response.indexOf(":8443/ctx/data/info") > 0);
|
||||
|
||||
Assert.assertThat(response,Matchers.not(Matchers.containsString("https:///")));
|
||||
|
||||
_config.setSecurePort(443);
|
||||
response = _connector.getResponses("GET /ctx/data/info HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/data/info HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 302 Found"));
|
||||
Assert.assertTrue(response.indexOf("Location") > 0);
|
||||
Assert.assertTrue(!response.contains(":443/ctx/data/info"));
|
||||
|
||||
_config.setSecurePort(8443);
|
||||
response = _connector.getResponses("GET /ctx/data/info HTTP/1.0\r\nHost: wobble.com\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/data/info HTTP/1.0\r\nHost: wobble.com\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 302 Found"));
|
||||
Assert.assertTrue(response.indexOf("Location") > 0);
|
||||
Assert.assertTrue(response.indexOf("https://wobble.com:8443/ctx/data/info") > 0);
|
||||
|
||||
_config.setSecurePort(443);
|
||||
response = _connector.getResponses("GET /ctx/data/info HTTP/1.0\r\nHost: wobble.com\r\n\r\n");
|
||||
System.err.println(response);
|
||||
response = _connector.getResponse("GET /ctx/data/info HTTP/1.0\r\nHost: wobble.com\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 302 Found"));
|
||||
Assert.assertTrue(response.indexOf("Location") > 0);
|
||||
Assert.assertTrue(!response.contains(":443"));
|
||||
|
@ -1282,10 +1282,10 @@ public class ConstraintTest
|
|||
_server.start();
|
||||
|
||||
String response;
|
||||
response = _connector.getResponses("GET /ctx/noauth/info HTTP/1.0\r\n\r\n", 100000, TimeUnit.MILLISECONDS);
|
||||
response = _connector.getResponse("GET /ctx/noauth/info HTTP/1.0\r\n\r\n", 100000, TimeUnit.MILLISECONDS);
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
"Authorization: Basic " + B64Code.encode("user2:password") + "\r\n" +
|
||||
"\r\n", 100000, TimeUnit.MILLISECONDS);
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 500 "));
|
||||
|
@ -1299,7 +1299,7 @@ public class ConstraintTest
|
|||
|
||||
_server.start();
|
||||
|
||||
response = _connector.getResponses("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
response = _connector.getResponse("GET /ctx/auth/info HTTP/1.0\r\n" +
|
||||
"Authorization: Basic " + B64Code.encode("user2:password") + "\r\n" +
|
||||
"\r\n", 100000, TimeUnit.MILLISECONDS);
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
|
@ -1313,18 +1313,18 @@ public class ConstraintTest
|
|||
|
||||
String response;
|
||||
|
||||
response = _connector.getResponses("GET /ctx/noauth/info HTTP/1.0\r\n"+
|
||||
response = _connector.getResponse("GET /ctx/noauth/info HTTP/1.0\r\n"+
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
Assert.assertThat(response, Matchers.containsString("user=null"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/noauth/info HTTP/1.0\r\n"+
|
||||
response = _connector.getResponse("GET /ctx/noauth/info HTTP/1.0\r\n"+
|
||||
"Authorization: Basic " + B64Code.encode("admin:wrong") + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
Assert.assertThat(response, Matchers.containsString("user=null"));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/noauth/info HTTP/1.0\r\n"+
|
||||
response = _connector.getResponse("GET /ctx/noauth/info HTTP/1.0\r\n"+
|
||||
"Authorization: Basic " + B64Code.encode("admin:password") + "\r\n" +
|
||||
"\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
|
@ -1338,13 +1338,13 @@ public class ConstraintTest
|
|||
_server.start();
|
||||
|
||||
String response;
|
||||
response = _connector.getResponses("GET /ctx/forbid/somethig HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/forbid/somethig HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 403 "));
|
||||
|
||||
response = _connector.getResponses("POST /ctx/forbid/post HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("POST /ctx/forbid/post HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 "));
|
||||
|
||||
response = _connector.getResponses("GET /ctx/forbid/post HTTP/1.0\r\n\r\n");
|
||||
response = _connector.getResponse("GET /ctx/forbid/post HTTP/1.0\r\n\r\n");
|
||||
Assert.assertThat(response, Matchers.startsWith("HTTP/1.1 200 ")); // This is so stupid, but it is the S P E C
|
||||
}
|
||||
private class RequestHandler extends AbstractHandler
|
||||
|
|
|
@ -59,7 +59,6 @@ import org.eclipse.jetty.http.MimeTypes;
|
|||
import org.eclipse.jetty.server.LocalConnector.LocalEndPoint;
|
||||
import org.eclipse.jetty.server.handler.AbstractHandler;
|
||||
import org.eclipse.jetty.server.handler.ContextHandler;
|
||||
import org.eclipse.jetty.server.handler.ErrorHandler;
|
||||
import org.eclipse.jetty.util.IO;
|
||||
import org.eclipse.jetty.util.MultiPartInputStreamParser;
|
||||
import org.eclipse.jetty.util.Utf8Appendable;
|
||||
|
@ -188,7 +187,7 @@ public class RequestTest
|
|||
{
|
||||
try
|
||||
{
|
||||
Part foo = request.getPart("stuff");
|
||||
request.getPart("stuff");
|
||||
return false;
|
||||
}
|
||||
catch (IllegalStateException e)
|
||||
|
|
|
@ -34,7 +34,11 @@ import java.io.IOException;
|
|||
import java.io.InputStreamReader;
|
||||
import java.io.LineNumberReader;
|
||||
import java.io.PrintWriter;
|
||||
import java.net.Inet4Address;
|
||||
import java.net.InetAddress;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.Socket;
|
||||
import java.net.UnknownHostException;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
|
@ -78,6 +82,26 @@ import org.junit.Test;
|
|||
|
||||
public class ResponseTest
|
||||
{
|
||||
|
||||
static final InetSocketAddress LOCALADDRESS;
|
||||
|
||||
static
|
||||
{
|
||||
InetAddress ip=null;
|
||||
try
|
||||
{
|
||||
ip = Inet4Address.getByName("127.0.0.42");
|
||||
}
|
||||
catch (UnknownHostException e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
finally
|
||||
{
|
||||
LOCALADDRESS=new InetSocketAddress(ip,8888);
|
||||
}
|
||||
}
|
||||
|
||||
private Server _server;
|
||||
private HttpChannel _channel;
|
||||
|
||||
|
@ -92,7 +116,14 @@ public class ResponseTest
|
|||
_server.setHandler(new DumpHandler());
|
||||
_server.start();
|
||||
|
||||
AbstractEndPoint endp = new ByteArrayEndPoint(_scheduler, 5000);
|
||||
AbstractEndPoint endp = new ByteArrayEndPoint(_scheduler, 5000)
|
||||
{
|
||||
@Override
|
||||
public InetSocketAddress getLocalAddress()
|
||||
{
|
||||
return LOCALADDRESS;
|
||||
}
|
||||
};
|
||||
_channel = new HttpChannel(connector, new HttpConfiguration(), endp, new HttpTransport()
|
||||
{
|
||||
private Throwable _channelError;
|
||||
|
@ -661,18 +692,21 @@ public class ResponseTest
|
|||
};
|
||||
|
||||
int[] ports=new int[]{8080,80};
|
||||
String[] hosts=new String[]{"myhost","192.168.0.1","0::1"};
|
||||
String[] hosts=new String[]{null,"myhost","192.168.0.1","0::1"};
|
||||
for (int port : ports)
|
||||
{
|
||||
for (String host : hosts)
|
||||
{
|
||||
for (int i=0;i<tests.length;i++)
|
||||
{
|
||||
// System.err.printf("%s %d %s%n",host,port,tests[i][0]);
|
||||
|
||||
Response response = getResponse();
|
||||
Request request = response.getHttpChannel().getRequest();
|
||||
|
||||
request.setScheme("http");
|
||||
request.setAuthority(host,port);
|
||||
if (host!=null)
|
||||
request.setAuthority(host,port);
|
||||
request.setURIPathQuery("/path/info;param;jsessionid=12345?query=0&more=1#target");
|
||||
request.setContextPath("/path");
|
||||
request.setRequestedSessionId("12345");
|
||||
|
@ -691,8 +725,10 @@ public class ResponseTest
|
|||
response.sendRedirect(tests[i][0]);
|
||||
|
||||
String location = response.getHeader("Location");
|
||||
|
||||
String expected=tests[i][1].replace("@HOST@",host.contains(":")?("["+host+"]"):host).replace("@PORT@",port==80?"":(":"+port));
|
||||
|
||||
String expected = tests[i][1]
|
||||
.replace("@HOST@",host==null ? request.getLocalAddr() : (host.contains(":")?("["+host+"]"):host ))
|
||||
.replace("@PORT@",host==null ? ":8888" : (port==80?"":(":"+port)));
|
||||
assertEquals("test-"+i+" "+host+":"+port,expected,location);
|
||||
}
|
||||
}
|
||||
|
@ -753,31 +789,33 @@ public class ResponseTest
|
|||
});
|
||||
server.start();
|
||||
|
||||
Socket socket = new Socket("localhost", ((NetworkConnector)server.getConnectors()[0]).getLocalPort());
|
||||
socket.setSoTimeout(500000);
|
||||
socket.getOutputStream().write("HEAD / HTTP/1.1\r\nHost: localhost\r\n\r\n".getBytes());
|
||||
socket.getOutputStream().write("GET / HTTP/1.1\r\nHost: localhost\r\nConnection: close\r\n\r\n".getBytes());
|
||||
socket.getOutputStream().flush();
|
||||
|
||||
LineNumberReader reader = new LineNumberReader(new InputStreamReader(socket.getInputStream()));
|
||||
String line = reader.readLine();
|
||||
Assert.assertThat(line, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
// look for blank line
|
||||
while (line != null && line.length() > 0)
|
||||
line = reader.readLine();
|
||||
|
||||
// Read the first line of the GET
|
||||
line = reader.readLine();
|
||||
Assert.assertThat(line, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
|
||||
String last = null;
|
||||
while (line != null)
|
||||
try(Socket socket = new Socket("localhost", ((NetworkConnector)server.getConnectors()[0]).getLocalPort()))
|
||||
{
|
||||
last = line;
|
||||
line = reader.readLine();
|
||||
}
|
||||
socket.setSoTimeout(500000);
|
||||
socket.getOutputStream().write("HEAD / HTTP/1.1\r\nHost: localhost\r\n\r\n".getBytes());
|
||||
socket.getOutputStream().write("GET / HTTP/1.1\r\nHost: localhost\r\nConnection: close\r\n\r\n".getBytes());
|
||||
socket.getOutputStream().flush();
|
||||
|
||||
assertEquals("Doch", last);
|
||||
LineNumberReader reader = new LineNumberReader(new InputStreamReader(socket.getInputStream()));
|
||||
String line = reader.readLine();
|
||||
Assert.assertThat(line, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
// look for blank line
|
||||
while (line != null && line.length() > 0)
|
||||
line = reader.readLine();
|
||||
|
||||
// Read the first line of the GET
|
||||
line = reader.readLine();
|
||||
Assert.assertThat(line, Matchers.startsWith("HTTP/1.1 200 OK"));
|
||||
|
||||
String last = null;
|
||||
while (line != null)
|
||||
{
|
||||
last = line;
|
||||
line = reader.readLine();
|
||||
}
|
||||
|
||||
assertEquals("Doch", last);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue