[jboss-svn-commits] JBL Code SVN: r21567 - in labs/jbossrules/trunk/drools-guvnor/src: main/java/org/jboss/seam/security/permission and 3 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Aug 15 07:37:23 EDT 2008
Author: jervisliu
Date: 2008-08-15 07:37:23 -0400 (Fri, 15 Aug 2008)
New Revision: 21567
Modified:
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/security/SecurityServiceImpl.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/jboss/seam/security/permission/RoleBasedPermissionResolver.java
labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplSecurityTest.java
labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/security/NilAuthenticatorTest.java
labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/security/SecurityServiceImplTest.java
labs/jbossrules/trunk/drools-guvnor/src/test/java/org/jboss/seam/security/permission/RoleBasedPermissionResolverTest.java
Log:
Apply patch JBRULES-1732 on behalf of Chester Wu: Put the permission list into the session.
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/security/SecurityServiceImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/security/SecurityServiceImpl.java 2008-08-15 10:35:18 UTC (rev 21566)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/security/SecurityServiceImpl.java 2008-08-15 11:37:23 UTC (rev 21567)
@@ -27,6 +27,7 @@
import org.drools.guvnor.client.rpc.SecurityService;
import org.drools.guvnor.client.rpc.UserSecurityContext;
import org.drools.guvnor.client.security.Capabilities;
+import org.jboss.seam.Component;
import org.jboss.seam.contexts.Contexts;
import org.jboss.seam.security.Identity;
@@ -100,15 +101,14 @@
public Capabilities getUserCapabilities() {
if (Contexts.isSessionContextActive()) {
- return Capabilities.all();
+ CapabilityCalculator c = new CapabilityCalculator();
+ RoleBasedPermissionManager permManager = (RoleBasedPermissionManager)
+ Component.getInstance("roleBasedPermissionManager");
+ List<RoleBasedPermission> permissions = permManager.getRoleBasedPermission();
+ return c.calcCapabilities(permissions);
} else {
- CapabilityCalculator c = new CapabilityCalculator();
- List<RoleBasedPermission> ls = new ArrayList<RoleBasedPermission>();
- ls.add(new RoleBasedPermission("wee", RoleTypes.ANALYST, null, null));
- //ls.add(new RoleBasedPermission("wee", RoleTypes.PACKAGE_ADMIN, null, null));
- //return c.calcCapabilities(ls);
return Capabilities.all();
}
}
-}
\ No newline at end of file
+}
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/jboss/seam/security/permission/RoleBasedPermissionResolver.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/jboss/seam/security/permission/RoleBasedPermissionResolver.java 2008-08-15 10:35:18 UTC (rev 21566)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/jboss/seam/security/permission/RoleBasedPermissionResolver.java 2008-08-15 11:37:23 UTC (rev 21567)
@@ -11,6 +11,7 @@
import org.drools.guvnor.server.security.PackageNameType;
import org.drools.guvnor.server.security.PackageUUIDType;
import org.drools.guvnor.server.security.RoleBasedPermission;
+import org.drools.guvnor.server.security.RoleBasedPermissionManager;
import org.drools.guvnor.server.security.RoleBasedPermissionStore;
import org.drools.guvnor.server.security.RoleTypes;
import org.drools.repository.PackageItem;
@@ -93,11 +94,13 @@
return true;
}
- RoleBasedPermissionStore pbps = (RoleBasedPermissionStore) Component
- .getInstance("org.drools.guvnor.server.security.RoleBasedPermissionStore");
- List<RoleBasedPermission> permissions = pbps
- .getRoleBasedPermissionsByUserName(Identity.instance()
- .getCredentials().getUsername());
+ // Call relating method directly instead of to utilize relating
+ // method with @Unwrap notation.
+ RoleBasedPermissionManager permManager = (RoleBasedPermissionManager)
+ Component.getInstance("roleBasedPermissionManager");
+ List<RoleBasedPermission> permissions = permManager.getRoleBasedPermission();
+ /*List<RoleBasedPermission> permissions = (List<RoleBasedPermission>) Component
+ .getInstance("roleBasedPermissionManager");*/
for (RoleBasedPermission p : permissions) {
if (RoleTypes.ADMIN.equalsIgnoreCase(p.getRole())) {
Modified: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplSecurityTest.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplSecurityTest.java 2008-08-15 10:35:18 UTC (rev 21566)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplSecurityTest.java 2008-08-15 11:37:23 UTC (rev 21567)
@@ -17,6 +17,7 @@
import org.drools.guvnor.server.security.MockIdentity;
import org.drools.guvnor.server.security.MockRoleBasedPermissionStore;
import org.drools.guvnor.server.security.RoleBasedPermission;
+import org.drools.guvnor.server.security.RoleBasedPermissionManager;
import org.drools.guvnor.server.security.RoleTypes;
import org.drools.guvnor.server.util.TestEnvironmentSessionHelper;
import org.drools.repository.AssetItem;
@@ -79,6 +80,10 @@
MockRoleBasedPermissionStore store = new MockRoleBasedPermissionStore(pbps);
Contexts.getSessionContext().set("org.drools.guvnor.server.security.RoleBasedPermissionStore", store);
+ // Put permission list in session.
+ RoleBasedPermissionManager testManager = new RoleBasedPermissionManager();
+ testManager.create();
+ Contexts.getSessionContext().set("roleBasedPermissionManager", testManager);
//now lets see if we can access this asset with the permissions
RuleAsset asset = impl.loadRuleAsset(uuid1);
@@ -135,6 +140,10 @@
MockRoleBasedPermissionStore store = new MockRoleBasedPermissionStore(pbps);
Contexts.getSessionContext().set("org.drools.guvnor.server.security.RoleBasedPermissionStore", store);
+ // Put permission list in session.
+ RoleBasedPermissionManager testManager = new RoleBasedPermissionManager();
+ testManager.create();
+ Contexts.getSessionContext().set("roleBasedPermissionManager", testManager);
//now lets see if we can access this asset with the permissions
RuleAsset asset = impl.loadRuleAsset(uuid1);
@@ -187,6 +196,11 @@
MockRoleBasedPermissionStore store = new MockRoleBasedPermissionStore(pbps);
Contexts.getSessionContext().set("org.drools.guvnor.server.security.RoleBasedPermissionStore", store);
+ // Put permission list in session.
+ RoleBasedPermissionManager testManager = new RoleBasedPermissionManager();
+ testManager.create();
+ Contexts.getSessionContext().set("roleBasedPermissionManager", testManager);
+
// now lets see if we can access this asset with the permissions
RuleAsset asset = impl.loadRuleAsset(uuid);
assertNotNull(asset);
@@ -234,6 +248,11 @@
MockRoleBasedPermissionStore store = new MockRoleBasedPermissionStore(pbps);
Contexts.getSessionContext().set("org.drools.guvnor.server.security.RoleBasedPermissionStore", store);
+ // Put permission list in session.
+ RoleBasedPermissionManager testManager = new RoleBasedPermissionManager();
+ testManager.create();
+ Contexts.getSessionContext().set("roleBasedPermissionManager", testManager);
+
//now lets see if we can access this asset with the permissions
RuleAsset asset = impl.loadRuleAsset(uuid);
assertNotNull(asset);
@@ -280,6 +299,11 @@
MockRoleBasedPermissionStore store = new MockRoleBasedPermissionStore(pbps);
Contexts.getSessionContext().set("org.drools.guvnor.server.security.RoleBasedPermissionStore", store);
+ // Put permission list in session.
+ RoleBasedPermissionManager testManager = new RoleBasedPermissionManager();
+ testManager.create();
+ Contexts.getSessionContext().set("roleBasedPermissionManager", testManager);
+
//now lets see if we can access this asset with the permissions
try {
RuleAsset asset = impl.loadRuleAsset(uuid);
@@ -333,6 +357,11 @@
MockRoleBasedPermissionStore store = new MockRoleBasedPermissionStore(pbps);
Contexts.getSessionContext().set("org.drools.guvnor.server.security.RoleBasedPermissionStore", store);
+ // Put permission list in session.
+ RoleBasedPermissionManager testManager = new RoleBasedPermissionManager();
+ testManager.create();
+ Contexts.getSessionContext().set("roleBasedPermissionManager", testManager);
+
//now lets see if we can access this asset with the permissions
try {
RuleAsset asset = impl.loadRuleAsset(uuid);
@@ -427,6 +456,10 @@
MockRoleBasedPermissionStore store = new MockRoleBasedPermissionStore(pbps);
Contexts.getSessionContext().set("org.drools.guvnor.server.security.RoleBasedPermissionStore", store);
+ // Put permission list in session.
+ RoleBasedPermissionManager testManager = new RoleBasedPermissionManager();
+ testManager.create();
+ Contexts.getSessionContext().set("roleBasedPermissionManager", testManager);
TableDataResult res = impl.loadRuleListForCategories(
"testloadRuleListForCategoriesWithRoleBasedAuthrozationPackageReadonlyCat1", 0, -1,
@@ -488,6 +521,10 @@
MockRoleBasedPermissionStore store = new MockRoleBasedPermissionStore(pbps);
Contexts.getSessionContext().set("org.drools.guvnor.server.security.RoleBasedPermissionStore", store);
+ // Put permission list in session.
+ RoleBasedPermissionManager testManager = new RoleBasedPermissionManager();
+ testManager.create();
+ Contexts.getSessionContext().set("roleBasedPermissionManager", testManager);
TableDataResult res = impl.loadRuleListForCategories(
"testloadRuleListForCategoriesWithRoleBasedAuthrozationAnalystCat1", 0, -1,
@@ -534,6 +571,11 @@
packageUuid, null));
MockRoleBasedPermissionStore store = new MockRoleBasedPermissionStore(pbps);
Contexts.getSessionContext().set("org.drools.guvnor.server.security.RoleBasedPermissionStore", store);
+
+ // Put permission list in session.
+ RoleBasedPermissionManager testManager = new RoleBasedPermissionManager();
+ testManager.create();
+ Contexts.getSessionContext().set("roleBasedPermissionManager", testManager);
//now lets see if we can access this asset with the permissions
try {
@@ -582,6 +624,11 @@
MockRoleBasedPermissionStore store = new MockRoleBasedPermissionStore(pbps);
Contexts.getSessionContext().set("org.drools.guvnor.server.security.RoleBasedPermissionStore", store);
+ // Put permission list in session.
+ RoleBasedPermissionManager testManager = new RoleBasedPermissionManager();
+ testManager.create();
+ Contexts.getSessionContext().set("roleBasedPermissionManager", testManager);
+
//now lets see if we can access this asset with the permissions
String uuid2 = impl.checkinVersion(asset);
assertEquals(uuid, uuid2);
@@ -632,6 +679,11 @@
MockRoleBasedPermissionStore store = new MockRoleBasedPermissionStore(pbps);
Contexts.getSessionContext().set("org.drools.guvnor.server.security.RoleBasedPermissionStore", store);
+ // Put permission list in session.
+ RoleBasedPermissionManager testManager = new RoleBasedPermissionManager();
+ testManager.create();
+ Contexts.getSessionContext().set("roleBasedPermissionManager", testManager);
+
TableDataResult result = impl.queryFullText("testLoadRuleAssetWithRoleBasedAuthrozation", true, 0, -1);
assertEquals(1, result.data.length);
} finally {
@@ -691,6 +743,11 @@
MockRoleBasedPermissionStore store = new MockRoleBasedPermissionStore(pbps);
Contexts.getSessionContext().set("org.drools.guvnor.server.security.RoleBasedPermissionStore", store);
+ // Put permission list in session.
+ RoleBasedPermissionManager testManager = new RoleBasedPermissionManager();
+ testManager.create();
+ Contexts.getSessionContext().set("roleBasedPermissionManager", testManager);
+
MetaDataQuery[] qr = new MetaDataQuery[1];
qr[0] = new MetaDataQuery();
qr[0].attribute = AssetItem.DESCRIPTION_PROPERTY_NAME;
@@ -750,6 +807,11 @@
MockRoleBasedPermissionStore store = new MockRoleBasedPermissionStore(pbps);
Contexts.getSessionContext().set("org.drools.guvnor.server.security.RoleBasedPermissionStore", store);
+ // Put permission list in session.
+ RoleBasedPermissionManager testManager = new RoleBasedPermissionManager();
+ testManager.create();
+ Contexts.getSessionContext().set("roleBasedPermissionManager", testManager);
+
MetaDataQuery[] qr = new MetaDataQuery[1];
qr[0] = new MetaDataQuery();
qr[0].attribute = AssetItem.DESCRIPTION_PROPERTY_NAME;
@@ -808,7 +870,12 @@
MockRoleBasedPermissionStore store = new MockRoleBasedPermissionStore(pbps);
Contexts.getSessionContext().set("org.drools.guvnor.server.security.RoleBasedPermissionStore", store);
-
+
+ // Put permission list in session.
+ RoleBasedPermissionManager testManager = new RoleBasedPermissionManager();
+ testManager.create();
+ Contexts.getSessionContext().set("roleBasedPermissionManager", testManager);
+
MetaDataQuery[] qr = new MetaDataQuery[1];
qr[0] = new MetaDataQuery();
qr[0].attribute = AssetItem.DESCRIPTION_PROPERTY_NAME;
@@ -867,7 +934,12 @@
MockRoleBasedPermissionStore store = new MockRoleBasedPermissionStore(pbps);
Contexts.getSessionContext().set("org.drools.guvnor.server.security.RoleBasedPermissionStore", store);
-
+
+ // Put permission list in session.
+ RoleBasedPermissionManager testManager = new RoleBasedPermissionManager();
+ testManager.create();
+ Contexts.getSessionContext().set("roleBasedPermissionManager", testManager);
+
MetaDataQuery[] qr = new MetaDataQuery[1];
qr[0] = new MetaDataQuery();
qr[0].attribute = AssetItem.DESCRIPTION_PROPERTY_NAME;
Modified: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/security/NilAuthenticatorTest.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/security/NilAuthenticatorTest.java 2008-08-15 10:35:18 UTC (rev 21566)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/security/NilAuthenticatorTest.java 2008-08-15 11:37:23 UTC (rev 21567)
@@ -9,19 +9,9 @@
public class NilAuthenticatorTest extends TestCase {
public void testAdmin() {
- Lifecycle.beginApplication(new HashMap<String, Object>());
- Lifecycle.beginCall();
-
- MockIdentity mi = new MockIdentity();
- mi.inject();
-
NilAuthenticator ni = new NilAuthenticator();
- assertFalse(mi.hasRole("admin"));
- ni.authenticate();
- assertTrue(mi.hasRole("admin"));
-
- Lifecycle.endApplication();
+ assertTrue(ni.authenticate());
}
}
Modified: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/security/SecurityServiceImplTest.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/security/SecurityServiceImplTest.java 2008-08-15 10:35:18 UTC (rev 21566)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/security/SecurityServiceImplTest.java 2008-08-15 11:37:23 UTC (rev 21567)
@@ -24,7 +24,9 @@
import org.drools.guvnor.client.security.Capabilities;
import org.drools.guvnor.server.security.SecurityServiceImpl;
+import org.jboss.seam.contexts.Contexts;
import org.jboss.seam.contexts.Lifecycle;
+import org.jboss.seam.security.permission.RoleBasedPermissionResolver;
import org.jboss.security.identity.RoleType;
import junit.framework.TestCase;
@@ -40,13 +42,47 @@
SecurityServiceImpl impl = new SecurityServiceImpl();
assertNotNull(impl.getCurrentUser());
}
-
+
public void testCapabilities() {
SecurityServiceImpl impl = new SecurityServiceImpl();
+
Capabilities c = impl.getUserCapabilities();
assertTrue(c.list.size() > 1);
+ }
+
+ public void testCapabilitiesWithContext() {
+ SecurityServiceImpl impl = new SecurityServiceImpl();
+ // Mock up SEAM contexts
+ Map application = new HashMap<String, Object>();
+ Lifecycle.beginApplication(application);
+ Lifecycle.beginCall();
+ MockIdentity midentity = new MockIdentity();
+ RoleBasedPermissionResolver resolver = new RoleBasedPermissionResolver();
+ resolver.setEnableRoleBasedAuthorization(true);
+ midentity.addPermissionResolver(resolver);
+ Contexts.getSessionContext().set("org.jboss.seam.security.identity",
+ midentity);
+ Contexts.getSessionContext().set(
+ "org.drools.guvnor.client.rpc.RepositoryService", impl);
+
+ List<RoleBasedPermission> pbps = new ArrayList<RoleBasedPermission>();
+ pbps.add(new RoleBasedPermission("jervis", RoleTypes.PACKAGE_READONLY, "packagename",
+ null));
+ MockRoleBasedPermissionStore store = new MockRoleBasedPermissionStore(pbps);
+ Contexts.getSessionContext().set("org.drools.guvnor.server.security.RoleBasedPermissionStore", store);
+
+ // Put permission list in session.
+ RoleBasedPermissionManager testManager = new RoleBasedPermissionManager();
+ testManager.create();
+ Contexts.getSessionContext().set("roleBasedPermissionManager",
+ testManager);
+
+ Capabilities c = impl.getUserCapabilities();
+ assertTrue(c.list.size() == 1);
+
+ Lifecycle.endApplication();
}
-}
\ No newline at end of file
+}
Modified: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/jboss/seam/security/permission/RoleBasedPermissionResolverTest.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/jboss/seam/security/permission/RoleBasedPermissionResolverTest.java 2008-08-15 10:35:18 UTC (rev 21566)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/jboss/seam/security/permission/RoleBasedPermissionResolverTest.java 2008-08-15 11:37:23 UTC (rev 21567)
@@ -28,6 +28,7 @@
import org.drools.guvnor.server.security.MockRoleBasedPermissionStore;
import org.drools.guvnor.server.security.PackageNameType;
import org.drools.guvnor.server.security.RoleBasedPermission;
+import org.drools.guvnor.server.security.RoleBasedPermissionManager;
import org.drools.guvnor.server.security.RoleTypes;
import org.jboss.seam.contexts.Contexts;
import org.jboss.seam.contexts.Lifecycle;
@@ -55,6 +56,11 @@
MockRoleBasedPermissionStore store = new MockRoleBasedPermissionStore(pbps);
Contexts.getSessionContext().set("org.drools.guvnor.server.security.RoleBasedPermissionStore", store);
+ // Put permission list in session.
+ RoleBasedPermissionManager testManager = new RoleBasedPermissionManager();
+ testManager.create();
+ Contexts.getSessionContext().set("roleBasedPermissionManager", testManager);
+
RoleBasedPermissionResolver resolver = new RoleBasedPermissionResolver();
resolver.setEnableRoleBasedAuthorization(true);
@@ -99,6 +105,11 @@
pbps.add(new RoleBasedPermission("jervis", RoleTypes.PACKAGE_READONLY, package2Name, null));
MockRoleBasedPermissionStore store = new MockRoleBasedPermissionStore(pbps);
Contexts.getSessionContext().set("org.drools.guvnor.server.security.RoleBasedPermissionStore", store);
+
+ // Put permission list in session.
+ RoleBasedPermissionManager testManager = new RoleBasedPermissionManager();
+ testManager.create();
+ Contexts.getSessionContext().set("roleBasedPermissionManager", testManager);
RoleBasedPermissionResolver resolver = new RoleBasedPermissionResolver();
resolver.setEnableRoleBasedAuthorization(true);
@@ -124,6 +135,11 @@
pbps.add(new RoleBasedPermission("jervis", RoleTypes.PACKAGE_ADMIN, packageName, null));
MockRoleBasedPermissionStore store = new MockRoleBasedPermissionStore(pbps);
Contexts.getSessionContext().set("org.drools.guvnor.server.security.RoleBasedPermissionStore", store);
+
+ // Put permission list in session.
+ RoleBasedPermissionManager testManager = new RoleBasedPermissionManager();
+ testManager.create();
+ Contexts.getSessionContext().set("roleBasedPermissionManager", testManager);
RoleBasedPermissionResolver resolver = new RoleBasedPermissionResolver();
resolver.setEnableRoleBasedAuthorization(true);
@@ -152,6 +168,11 @@
pbps.add(new RoleBasedPermission("jervis", RoleTypes.PACKAGE_DEVELOPER, package1Name, null));
MockRoleBasedPermissionStore store = new MockRoleBasedPermissionStore(pbps);
Contexts.getSessionContext().set("org.drools.guvnor.server.security.RoleBasedPermissionStore", store);
+
+ // Put permission list in session.
+ RoleBasedPermissionManager testManager = new RoleBasedPermissionManager();
+ testManager.create();
+ Contexts.getSessionContext().set("roleBasedPermissionManager", testManager);
RoleBasedPermissionResolver resolver = new RoleBasedPermissionResolver();
resolver.setEnableRoleBasedAuthorization(true);
@@ -180,6 +201,11 @@
pbps.add(new RoleBasedPermission("jervis", RoleTypes.PACKAGE_READONLY, package1Name, null));
MockRoleBasedPermissionStore store = new MockRoleBasedPermissionStore(pbps);
Contexts.getSessionContext().set("org.drools.guvnor.server.security.RoleBasedPermissionStore", store);
+
+ // Put permission list in session.
+ RoleBasedPermissionManager testManager = new RoleBasedPermissionManager();
+ testManager.create();
+ Contexts.getSessionContext().set("roleBasedPermissionManager", testManager);
RoleBasedPermissionResolver resolver = new RoleBasedPermissionResolver();
resolver.setEnableRoleBasedAuthorization(true);
@@ -208,6 +234,11 @@
pbps.add(new RoleBasedPermission("jervis", RoleTypes.ANALYST, null, "category1"));
MockRoleBasedPermissionStore store = new MockRoleBasedPermissionStore(pbps);
Contexts.getSessionContext().set("org.drools.guvnor.server.security.RoleBasedPermissionStore", store);
+
+ // Put permission list in session.
+ RoleBasedPermissionManager testManager = new RoleBasedPermissionManager();
+ testManager.create();
+ Contexts.getSessionContext().set("roleBasedPermissionManager", testManager);
RoleBasedPermissionResolver resolver = new RoleBasedPermissionResolver();
resolver.setEnableRoleBasedAuthorization(true);
More information about the jboss-svn-commits
mailing list