Author: marrink
Date: Thu May 1 13:33:45 2008
New Revision: 652652
URL: http://svn.apache.org/viewvc?rev=652652&view=rev
Log:
RESOLVED - issue WICKET-1152: MetaDataRoleAuthorizationStrategy.unauthorize()
doesn't work
https://issues.apache.org/jira/browse/WICKET-1152
Added:
wicket/trunk/wicket-auth-roles/src/test/java/org/apache/wicket/authorization/strategies/role/metadata/InstantiationPermissionsTest.java
(with props)
Modified:
wicket/branches/wicket-1.3.x/jdk-1.5/wicket-auth-roles/src/main/java/org/apache/wicket/authorization/strategies/role/metadata/ActionPermissions.java
wicket/branches/wicket-1.3.x/jdk-1.5/wicket-auth-roles/src/main/java/org/apache/wicket/authorization/strategies/role/metadata/InstantiationPermissions.java
wicket/branches/wicket-1.3.x/jdk-1.5/wicket-auth-roles/src/test/java/org/apache/wicket/authorization/strategies/role/metadata/ActionPermissionsTest.java
wicket/branches/wicket-1.3.x/jdk-1.5/wicket-auth-roles/src/test/java/org/apache/wicket/authorization/strategies/role/metadata/InstantiationPermissionsTest.java
wicket/trunk/wicket-auth-roles/src/main/java/org/apache/wicket/authorization/strategies/role/metadata/ActionPermissions.java
wicket/trunk/wicket-auth-roles/src/main/java/org/apache/wicket/authorization/strategies/role/metadata/InstantiationPermissions.java
wicket/trunk/wicket-auth-roles/src/test/java/org/apache/wicket/authorization/strategies/role/metadata/ActionPermissionsTest.java
Modified:
wicket/branches/wicket-1.3.x/jdk-1.5/wicket-auth-roles/src/main/java/org/apache/wicket/authorization/strategies/role/metadata/ActionPermissions.java
URL:
http://svn.apache.org/viewvc/wicket/branches/wicket-1.3.x/jdk-1.5/wicket-auth-roles/src/main/java/org/apache/wicket/authorization/strategies/role/metadata/ActionPermissions.java?rev=652652&r1=652651&r2=652652&view=diff
==============================================================================
---
wicket/branches/wicket-1.3.x/jdk-1.5/wicket-auth-roles/src/main/java/org/apache/wicket/authorization/strategies/role/metadata/ActionPermissions.java
(original)
+++
wicket/branches/wicket-1.3.x/jdk-1.5/wicket-auth-roles/src/main/java/org/apache/wicket/authorization/strategies/role/metadata/ActionPermissions.java
Thu May 1 13:33:45 2008
@@ -102,7 +102,9 @@
}
/**
- * Remove the given authorized role from an action.
+ * Remove the given authorized role from an action. Note that this is
only relevant if a role
+ * was previously authorized for that action. If no roles where
previously authorized the effect
+ * of the unauthorize call is that no roles at all will be authorized
for that action.
*
* @param action
* The action
@@ -126,11 +128,16 @@
{
roles.removeAll(rolesToRemove);
}
+ else
+ {
+ roles = new Roles();
+ rolesForAction.put(action, roles);
+ }
// If we removed the last authorized role, we authorize the
empty role
// so that removing authorization can't suddenly open something
up to
// everyone.
- if (roles != null && roles.size() == 0)
+ if (roles.size() == 0)
{
roles.add(MetaDataRoleAuthorizationStrategy.NO_ROLE);
}
Modified:
wicket/branches/wicket-1.3.x/jdk-1.5/wicket-auth-roles/src/main/java/org/apache/wicket/authorization/strategies/role/metadata/InstantiationPermissions.java
URL:
http://svn.apache.org/viewvc/wicket/branches/wicket-1.3.x/jdk-1.5/wicket-auth-roles/src/main/java/org/apache/wicket/authorization/strategies/role/metadata/InstantiationPermissions.java?rev=652652&r1=652651&r2=652652&view=diff
==============================================================================
---
wicket/branches/wicket-1.3.x/jdk-1.5/wicket-auth-roles/src/main/java/org/apache/wicket/authorization/strategies/role/metadata/InstantiationPermissions.java
(original)
+++
wicket/branches/wicket-1.3.x/jdk-1.5/wicket-auth-roles/src/main/java/org/apache/wicket/authorization/strategies/role/metadata/InstantiationPermissions.java
Thu May 1 13:33:45 2008
@@ -105,7 +105,10 @@
}
/**
- * Removes permission for the given role to instantiate the given class.
+ * Removes permission for the given role to instantiate the given
class. Note that this is only
+ * relevant if a role was previously authorized for that class. If no
roles where previously
+ * authorized the effect of the unauthorize call is that no roles at
all will be authorized for
+ * that class.
*
* @param componentClass
* The class
@@ -125,16 +128,21 @@
throw new IllegalArgumentException("Argument
rolesToRemove cannot be null");
}
- final Roles roles = rolesForComponentClass.get(componentClass);
+ Roles roles = rolesForComponentClass.get(componentClass);
if (roles != null)
{
roles.removeAll(rolesToRemove);
}
+ else
+ {
+ roles = new Roles();
+ rolesForComponentClass.put(componentClass, roles);
+ }
// If we removed the last authorized role, we authorize the
empty role
// so that removing authorization can't suddenly open something
up to
// everyone.
- if (roles != null && roles.size() == 0)
+ if (roles.size() == 0)
{
roles.add(MetaDataRoleAuthorizationStrategy.NO_ROLE);
}
Modified:
wicket/branches/wicket-1.3.x/jdk-1.5/wicket-auth-roles/src/test/java/org/apache/wicket/authorization/strategies/role/metadata/ActionPermissionsTest.java
URL:
http://svn.apache.org/viewvc/wicket/branches/wicket-1.3.x/jdk-1.5/wicket-auth-roles/src/test/java/org/apache/wicket/authorization/strategies/role/metadata/ActionPermissionsTest.java?rev=652652&r1=652651&r2=652652&view=diff
==============================================================================
---
wicket/branches/wicket-1.3.x/jdk-1.5/wicket-auth-roles/src/test/java/org/apache/wicket/authorization/strategies/role/metadata/ActionPermissionsTest.java
(original)
+++
wicket/branches/wicket-1.3.x/jdk-1.5/wicket-auth-roles/src/test/java/org/apache/wicket/authorization/strategies/role/metadata/ActionPermissionsTest.java
Thu May 1 13:33:45 2008
@@ -19,7 +19,10 @@
import junit.framework.TestCase;
import org.apache.wicket.authorization.Action;
+import org.apache.wicket.authorization.strategies.role.IRoleCheckingStrategy;
import org.apache.wicket.authorization.strategies.role.Roles;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.util.tester.WicketTester;
/**
* Test case for [EMAIL PROTECTED]
org.apache.wicket.authorization.strategies.role.metadata.ActionPermissions}.
@@ -67,7 +70,7 @@
}
/**
- * Test adding roles.
+ * Test removing roles.
*
* @throws Exception
*/
@@ -77,33 +80,62 @@
Action mambo = new Action("mambo");
assertEquals(null, permissions.rolesFor(mambo));
permissions.unauthorize(mambo, new Roles("maurice"));
- assertEquals(null, permissions.rolesFor(mambo));
+ assertEquals(new
Roles(MetaDataRoleAuthorizationStrategy.NO_ROLE), permissions
+ .rolesFor(mambo));
}
/**
* Test for issue <a
href="http://issues.apache.org/jira/browse/WICKET-1152">WICKET-1152</a>.
- * Temporarily disabled until we can decide what to do with it.
+ *
+ */
+ public void testRemove2()
+ {
+ WicketTester tester = new WicketTester();
+ tester.setupRequestAndResponse();
+ Label label = new Label("label", "text");
+ Action mambo = new Action("mambo");
+ MetaDataRoleAuthorizationStrategy strategy = new
MetaDataRoleAuthorizationStrategy(
+ new IRoleCheckingStrategy()
+ {
+
+ public boolean hasAnyRole(Roles roles)
+ {
+ return false;
+ }
+ });
+
label.setMetaData(MetaDataRoleAuthorizationStrategy.ACTION_PERMISSIONS,
+ new ActionPermissions());
+ MetaDataRoleAuthorizationStrategy.unauthorize(label, mambo,
"johan");
+ assertFalse(strategy.isActionAuthorized(label, mambo));
+ tester.processRequestCycle();
+ tester.destroy();
+ }
+
+ /**
+ * Test consistency in behavior between authorizing a role for an
action and then unauthorizing
+ * it with [EMAIL PROTECTED] #testRemove2()}.
*/
-// public void testRemove2()
-// {
-// WicketTester tester = new WicketTester();
-// tester.setupRequestAndResponse();
-// Label label = new Label("label", "text");
-// Action mambo = new Action("mambo");
-// MetaDataRoleAuthorizationStrategy strategy = new
MetaDataRoleAuthorizationStrategy(
-// new IRoleCheckingStrategy()
-// {
-//
-// public boolean hasAnyRole(Roles roles)
-// {
-// return false;
-// }
-// });
-// label.setMetaData(MetaDataRoleAuthorizationStrategy.ACTION_PERMISSIONS,
-// new ActionPermissions());
-// MetaDataRoleAuthorizationStrategy.unauthorize(label, mambo, "johan");
-// assertFalse(strategy.isActionAuthorized(label, mambo));
-// tester.processRequestCycle();
-// tester.destroy();
-// }
+ public void testRemove3()
+ {
+ WicketTester tester = new WicketTester();
+ tester.setupRequestAndResponse();
+ Label label = new Label("label", "text");
+ Action mambo = new Action("mambo");
+ MetaDataRoleAuthorizationStrategy strategy = new
MetaDataRoleAuthorizationStrategy(
+ new IRoleCheckingStrategy()
+ {
+
+ public boolean hasAnyRole(Roles roles)
+ {
+ return false;
+ }
+ });
+
label.setMetaData(MetaDataRoleAuthorizationStrategy.ACTION_PERMISSIONS,
+ new ActionPermissions());
+ MetaDataRoleAuthorizationStrategy.authorize(label, mambo,
"johan");
+ MetaDataRoleAuthorizationStrategy.unauthorize(label, mambo,
"johan");
+ assertFalse(strategy.isActionAuthorized(label, mambo));
+ tester.processRequestCycle();
+ tester.destroy();
+ }
}
Modified:
wicket/branches/wicket-1.3.x/jdk-1.5/wicket-auth-roles/src/test/java/org/apache/wicket/authorization/strategies/role/metadata/InstantiationPermissionsTest.java
URL:
http://svn.apache.org/viewvc/wicket/branches/wicket-1.3.x/jdk-1.5/wicket-auth-roles/src/test/java/org/apache/wicket/authorization/strategies/role/metadata/InstantiationPermissionsTest.java?rev=652652&r1=652651&r2=652652&view=diff
==============================================================================
---
wicket/branches/wicket-1.3.x/jdk-1.5/wicket-auth-roles/src/test/java/org/apache/wicket/authorization/strategies/role/metadata/InstantiationPermissionsTest.java
(original)
+++
wicket/branches/wicket-1.3.x/jdk-1.5/wicket-auth-roles/src/test/java/org/apache/wicket/authorization/strategies/role/metadata/InstantiationPermissionsTest.java
Thu May 1 13:33:45 2008
@@ -19,7 +19,9 @@
import junit.framework.TestCase;
import org.apache.wicket.Page;
+import org.apache.wicket.authorization.strategies.role.IRoleCheckingStrategy;
import org.apache.wicket.authorization.strategies.role.Roles;
+import org.apache.wicket.util.tester.WicketTester;
/**
* Test case for
@@ -67,7 +69,7 @@
}
/**
- * Test adding roles.
+ * Test removing roles.
*
* @throws Exception
*/
@@ -76,32 +78,60 @@
InstantiationPermissions permissions = new
InstantiationPermissions();
assertEquals(null,
permissions.getRolesForComponentClass().get(Page.class));
permissions.unauthorize(Page.class, new Roles("eelco"));
- assertEquals(null,
permissions.getRolesForComponentClass().get(Page.class));
+ assertEquals(new
Roles(MetaDataRoleAuthorizationStrategy.NO_ROLE), permissions
+ .getRolesForComponentClass().get(Page.class));
}
/**
* Test for issue <a
href="http://issues.apache.org/jira/browse/WICKET-1152">WICKET-1152</a>.
- * Temporarily disabled until we can decide what to do with it.
+ *
+ */
+ public void testRemove2()
+ {
+ WicketTester tester = new WicketTester();
+ tester.setupRequestAndResponse();
+ MetaDataRoleAuthorizationStrategy strategy = new
MetaDataRoleAuthorizationStrategy(
+ new IRoleCheckingStrategy()
+ {
+
+ public boolean hasAnyRole(Roles roles)
+ {
+ return false;
+ }
+ });
+ tester.getApplication().setMetaData(
+
MetaDataRoleAuthorizationStrategy.INSTANTIATION_PERMISSIONS,
+ new InstantiationPermissions());
+ MetaDataRoleAuthorizationStrategy.unauthorize(Page.class,
"martijn");
+ assertFalse(strategy.isInstantiationAuthorized(Page.class));
+ tester.processRequestCycle();
+ tester.destroy();
+ }
+
+ /**
+ * Test consistency in behavior between authorizing a role for a class
and then unauthorizing it
+ * with [EMAIL PROTECTED] #testRemove2()}.
*/
-// public void testRemove2()
-// {
-// WicketTester tester = new WicketTester();
-// tester.setupRequestAndResponse();
-// MetaDataRoleAuthorizationStrategy strategy = new
MetaDataRoleAuthorizationStrategy(
-// new IRoleCheckingStrategy()
-// {
-//
-// public boolean hasAnyRole(Roles roles)
-// {
-// return false;
-// }
-// });
-// tester.getApplication().setMetaData(
-// MetaDataRoleAuthorizationStrategy.INSTANTIATION_PERMISSIONS,
-// new InstantiationPermissions());
-// MetaDataRoleAuthorizationStrategy.unauthorize(Page.class, "martijn");
-// assertFalse(strategy.isInstantiationAuthorized(Page.class));
-// tester.processRequestCycle();
-// tester.destroy();
-// }
+ public void testRemove3()
+ {
+ WicketTester tester = new WicketTester();
+ tester.setupRequestAndResponse();
+ MetaDataRoleAuthorizationStrategy strategy = new
MetaDataRoleAuthorizationStrategy(
+ new IRoleCheckingStrategy()
+ {
+
+ public boolean hasAnyRole(Roles roles)
+ {
+ return false;
+ }
+ });
+ tester.getApplication().setMetaData(
+
MetaDataRoleAuthorizationStrategy.INSTANTIATION_PERMISSIONS,
+ new InstantiationPermissions());
+ MetaDataRoleAuthorizationStrategy.authorize(Page.class,
"martijn");
+ MetaDataRoleAuthorizationStrategy.unauthorize(Page.class,
"martijn");
+ assertFalse(strategy.isInstantiationAuthorized(Page.class));
+ tester.processRequestCycle();
+ tester.destroy();
+ }
}
Modified:
wicket/trunk/wicket-auth-roles/src/main/java/org/apache/wicket/authorization/strategies/role/metadata/ActionPermissions.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-auth-roles/src/main/java/org/apache/wicket/authorization/strategies/role/metadata/ActionPermissions.java?rev=652652&r1=652651&r2=652652&view=diff
==============================================================================
---
wicket/trunk/wicket-auth-roles/src/main/java/org/apache/wicket/authorization/strategies/role/metadata/ActionPermissions.java
(original)
+++
wicket/trunk/wicket-auth-roles/src/main/java/org/apache/wicket/authorization/strategies/role/metadata/ActionPermissions.java
Thu May 1 13:33:45 2008
@@ -102,7 +102,9 @@
}
/**
- * Remove the given authorized role from an action.
+ * Remove the given authorized role from an action. Note that this is
only relevant if a role
+ * was previously authorized for that action. If no roles where
previously authorized the effect
+ * of the unauthorize call is that no roles at all will be authorized
for that action.
*
* @param action
* The action
@@ -126,6 +128,11 @@
{
roles.removeAll(rolesToRemove);
}
+ else
+ {
+ roles = new Roles();
+ rolesForAction.put(action, roles);
+ }
// If we removed the last authorized role, we authorize the
empty role
// so that removing authorization can't suddenly open something
up to
Modified:
wicket/trunk/wicket-auth-roles/src/main/java/org/apache/wicket/authorization/strategies/role/metadata/InstantiationPermissions.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-auth-roles/src/main/java/org/apache/wicket/authorization/strategies/role/metadata/InstantiationPermissions.java?rev=652652&r1=652651&r2=652652&view=diff
==============================================================================
---
wicket/trunk/wicket-auth-roles/src/main/java/org/apache/wicket/authorization/strategies/role/metadata/InstantiationPermissions.java
(original)
+++
wicket/trunk/wicket-auth-roles/src/main/java/org/apache/wicket/authorization/strategies/role/metadata/InstantiationPermissions.java
Thu May 1 13:33:45 2008
@@ -71,7 +71,9 @@
}
/**
- * Gives all roles permission to instantiate the given class.
+ * Gives all roles permission to instantiate the given class. Note that
this is only relevant if
+ * a role was previously authorized for that class. If no roles where
previously authorized the
+ * effect of the unauthorize call is that no roles at all will be
authorized for that class.
*
* @param componentClass
* The component class
@@ -125,11 +127,16 @@
throw new IllegalArgumentException("Argument
rolesToRemove cannot be null");
}
- final Roles roles = rolesForComponentClass.get(componentClass);
+ Roles roles = rolesForComponentClass.get(componentClass);
if (roles != null)
{
roles.removeAll(rolesToRemove);
}
+ else
+ {
+ roles = new Roles();
+ rolesForComponentClass.put(componentClass, roles);
+ }
// If we removed the last authorized role, we authorize the
empty role
// so that removing authorization can't suddenly open something
up to
Modified:
wicket/trunk/wicket-auth-roles/src/test/java/org/apache/wicket/authorization/strategies/role/metadata/ActionPermissionsTest.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-auth-roles/src/test/java/org/apache/wicket/authorization/strategies/role/metadata/ActionPermissionsTest.java?rev=652652&r1=652651&r2=652652&view=diff
==============================================================================
---
wicket/trunk/wicket-auth-roles/src/test/java/org/apache/wicket/authorization/strategies/role/metadata/ActionPermissionsTest.java
(original)
+++
wicket/trunk/wicket-auth-roles/src/test/java/org/apache/wicket/authorization/strategies/role/metadata/ActionPermissionsTest.java
Thu May 1 13:33:45 2008
@@ -19,7 +19,10 @@
import junit.framework.TestCase;
import org.apache.wicket.authorization.Action;
+import org.apache.wicket.authorization.strategies.role.IRoleCheckingStrategy;
import org.apache.wicket.authorization.strategies.role.Roles;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.util.tester.WicketTester;
/**
* Test case for [EMAIL PROTECTED]
org.apache.wicket.authorization.strategies.role.metadata.ActionPermissions}.
@@ -65,4 +68,74 @@
permissions.authorizeAll(mambo);
assertEquals(null, permissions.rolesFor(mambo));
}
+
+ /**
+ * Test removing roles.
+ *
+ * @throws Exception
+ */
+ public void testRemove1() throws Exception
+ {
+ ActionPermissions permissions = new ActionPermissions();
+ Action mambo = new Action("mambo");
+ assertEquals(null, permissions.rolesFor(mambo));
+ permissions.unauthorize(mambo, new Roles("maurice"));
+ assertEquals(new
Roles(MetaDataRoleAuthorizationStrategy.NO_ROLE), permissions
+ .rolesFor(mambo));
+ }
+
+ /**
+ * Test for issue <a
href="http://issues.apache.org/jira/browse/WICKET-1152">WICKET-1152</a>.
+ *
+ */
+ public void testRemove2()
+ {
+ WicketTester tester = new WicketTester();
+ tester.setupRequestAndResponse();
+ Label label = new Label("label", "text");
+ Action mambo = new Action("mambo");
+ MetaDataRoleAuthorizationStrategy strategy = new
MetaDataRoleAuthorizationStrategy(
+ new IRoleCheckingStrategy()
+ {
+
+ public boolean hasAnyRole(Roles roles)
+ {
+ return false;
+ }
+ });
+
label.setMetaData(MetaDataRoleAuthorizationStrategy.ACTION_PERMISSIONS,
+ new ActionPermissions());
+ MetaDataRoleAuthorizationStrategy.unauthorize(label, mambo,
"johan");
+ assertFalse(strategy.isActionAuthorized(label, mambo));
+ tester.processRequestCycle();
+ tester.destroy();
+ }
+
+ /**
+ * Test consistency in behavior between authorizing a role for an
action and then unauthorizing
+ * it with [EMAIL PROTECTED] #testRemove2()}.
+ */
+ public void testRemove3()
+ {
+ WicketTester tester = new WicketTester();
+ tester.setupRequestAndResponse();
+ Label label = new Label("label", "text");
+ Action mambo = new Action("mambo");
+ MetaDataRoleAuthorizationStrategy strategy = new
MetaDataRoleAuthorizationStrategy(
+ new IRoleCheckingStrategy()
+ {
+
+ public boolean hasAnyRole(Roles roles)
+ {
+ return false;
+ }
+ });
+
label.setMetaData(MetaDataRoleAuthorizationStrategy.ACTION_PERMISSIONS,
+ new ActionPermissions());
+ MetaDataRoleAuthorizationStrategy.authorize(label, mambo,
"johan");
+ MetaDataRoleAuthorizationStrategy.unauthorize(label, mambo,
"johan");
+ assertFalse(strategy.isActionAuthorized(label, mambo));
+ tester.processRequestCycle();
+ tester.destroy();
+ }
}
Added:
wicket/trunk/wicket-auth-roles/src/test/java/org/apache/wicket/authorization/strategies/role/metadata/InstantiationPermissionsTest.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-auth-roles/src/test/java/org/apache/wicket/authorization/strategies/role/metadata/InstantiationPermissionsTest.java?rev=652652&view=auto
==============================================================================
---
wicket/trunk/wicket-auth-roles/src/test/java/org/apache/wicket/authorization/strategies/role/metadata/InstantiationPermissionsTest.java
(added)
+++
wicket/trunk/wicket-auth-roles/src/test/java/org/apache/wicket/authorization/strategies/role/metadata/InstantiationPermissionsTest.java
Thu May 1 13:33:45 2008
@@ -0,0 +1,137 @@
+/*
+ * 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.wicket.authorization.strategies.role.metadata;
+
+import junit.framework.TestCase;
+
+import org.apache.wicket.Page;
+import org.apache.wicket.authorization.strategies.role.IRoleCheckingStrategy;
+import org.apache.wicket.authorization.strategies.role.Roles;
+import org.apache.wicket.util.tester.WicketTester;
+
+/**
+ * Test case for
+ * [EMAIL PROTECTED]
org.apache.wicket.authorization.strategies.role.metadata.InstantiationPermissions}.
+ *
+ * @author Eelco Hillenius
+ */
+public class InstantiationPermissionsTest extends TestCase
+{
+ /**
+ * Construct.
+ */
+ public InstantiationPermissionsTest()
+ {
+ super();
+ }
+
+ /**
+ * Construct.
+ *
+ * @param arg0
+ */
+ public InstantiationPermissionsTest(String arg0)
+ {
+ super(arg0);
+ }
+
+ /**
+ * Test adding roles.
+ *
+ * @throws Exception
+ */
+ public void testAdd1() throws Exception
+ {
+ InstantiationPermissions permissions = new
InstantiationPermissions();
+ permissions.authorize(Page.class, new Roles("jonathan"));
+ permissions.authorize(Page.class, new Roles("johan"));
+ permissions.authorize(Page.class, new Roles("maurice"));
+ permissions.authorize(Page.class, new Roles("eelco"));
+ assertEquals(4,
permissions.getRolesForComponentClass().get(Page.class).size());
+ permissions.unauthorize(Page.class, new Roles("maurice"));
+ assertEquals(3,
permissions.getRolesForComponentClass().get(Page.class).size());
+ permissions.authorizeAll(Page.class);
+ assertEquals(null,
permissions.getRolesForComponentClass().get(Page.class));
+ }
+
+ /**
+ * Test removing roles.
+ *
+ * @throws Exception
+ */
+ public void testRemove1() throws Exception
+ {
+ InstantiationPermissions permissions = new
InstantiationPermissions();
+ assertEquals(null,
permissions.getRolesForComponentClass().get(Page.class));
+ permissions.unauthorize(Page.class, new Roles("eelco"));
+ assertEquals(new
Roles(MetaDataRoleAuthorizationStrategy.NO_ROLE), permissions
+ .getRolesForComponentClass().get(Page.class));
+ }
+
+ /**
+ * Test for issue <a
href="http://issues.apache.org/jira/browse/WICKET-1152">WICKET-1152</a>.
+ *
+ */
+ public void testRemove2()
+ {
+ WicketTester tester = new WicketTester();
+ tester.setupRequestAndResponse();
+ MetaDataRoleAuthorizationStrategy strategy = new
MetaDataRoleAuthorizationStrategy(
+ new IRoleCheckingStrategy()
+ {
+
+ public boolean hasAnyRole(Roles roles)
+ {
+ return false;
+ }
+ });
+ tester.getApplication().setMetaData(
+
MetaDataRoleAuthorizationStrategy.INSTANTIATION_PERMISSIONS,
+ new InstantiationPermissions());
+ MetaDataRoleAuthorizationStrategy.unauthorize(Page.class,
"martijn");
+ assertFalse(strategy.isInstantiationAuthorized(Page.class));
+ tester.processRequestCycle();
+ tester.destroy();
+ }
+
+ /**
+ * Test consistency in behavior between authorizing a role for a class
and then unauthorizing it
+ * with [EMAIL PROTECTED] #testRemove2()}.
+ */
+ public void testRemove3()
+ {
+ WicketTester tester = new WicketTester();
+ tester.setupRequestAndResponse();
+ MetaDataRoleAuthorizationStrategy strategy = new
MetaDataRoleAuthorizationStrategy(
+ new IRoleCheckingStrategy()
+ {
+
+ public boolean hasAnyRole(Roles roles)
+ {
+ return false;
+ }
+ });
+ tester.getApplication().setMetaData(
+
MetaDataRoleAuthorizationStrategy.INSTANTIATION_PERMISSIONS,
+ new InstantiationPermissions());
+ MetaDataRoleAuthorizationStrategy.authorize(Page.class,
"martijn");
+ MetaDataRoleAuthorizationStrategy.unauthorize(Page.class,
"martijn");
+ assertFalse(strategy.isInstantiationAuthorized(Page.class));
+ tester.processRequestCycle();
+ tester.destroy();
+ }
+}
Propchange:
wicket/trunk/wicket-auth-roles/src/test/java/org/apache/wicket/authorization/strategies/role/metadata/InstantiationPermissionsTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain