Author: markt
Date: Wed Jun 19 14:53:02 2013
New Revision: 1494647

URL: http://svn.apache.org/r1494647
Log:
Add test for additional language added to @HttpConstraint in section 13.4.1 in 
the 3.1 spec

Modified:
    tomcat/trunk/test/org/apache/catalina/realm/TestRealmBase.java

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=1494647&r1=1494646&r2=1494647&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/realm/TestRealmBase.java (original)
+++ tomcat/trunk/test/org/apache/catalina/realm/TestRealmBase.java Wed Jun 19 
14:53:02 2013
@@ -32,6 +32,7 @@ import org.apache.catalina.connector.Res
 import org.apache.catalina.connector.TesterRequest;
 import org.apache.catalina.connector.TesterResponse;
 import org.apache.catalina.core.TesterContext;
+import org.apache.catalina.deploy.SecurityCollection;
 import org.apache.catalina.deploy.SecurityConstraint;
 import org.apache.catalina.startup.TesterMapRealm;
 
@@ -599,6 +600,14 @@ public class TestRealmBase {
                 SecurityConstraint.createConstraints(
                         servletSecurityElement, "/*");
 
+        // Create a separate constraint that covers DELETE
+        SecurityConstraint deleteConstraint = new SecurityConstraint();
+        deleteConstraint.addAuthRole(ROLE1);
+        SecurityCollection deleteCollection = new SecurityCollection();
+        deleteCollection.addMethod("DELETE");
+        deleteCollection.addPattern("/*");
+        deleteConstraint.addCollection(deleteCollection);
+
         TesterMapRealm mapRealm = new TesterMapRealm();
 
         // Set up the mock request and response
@@ -625,6 +634,7 @@ public class TestRealmBase {
         for (SecurityConstraint constraint : constraints) {
             context.addConstraint(constraint);
         }
+        context.addConstraint(deleteConstraint);
 
         // All users should be able to perform a GET
         request.setMethod("GET");
@@ -704,5 +714,24 @@ public class TestRealmBase {
         Assert.assertTrue(mapRealm.hasResourcePermission(
                 request, response, constraintsTrace, null));
 
+        // Only user1 should be able to perform a DELETE as only that user has
+        // role1.
+        request.setMethod("DELETE");
+
+        SecurityConstraint[] constraintsDelete =
+                mapRealm.findSecurityConstraints(request, context);
+
+        request.setUserPrincipal(null);
+        Assert.assertFalse(mapRealm.hasResourcePermission(
+                request, response, constraintsDelete, null));
+        request.setUserPrincipal(gp1);
+        Assert.assertTrue(mapRealm.hasResourcePermission(
+                request, response, constraintsDelete, null));
+        request.setUserPrincipal(gp2);
+        Assert.assertFalse(mapRealm.hasResourcePermission(
+                request, response, constraintsDelete, null));
+        request.setUserPrincipal(gp99);
+        Assert.assertFalse(mapRealm.hasResourcePermission(
+                request, response, constraintsDelete, null));
     }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to