[jboss-svn-commits] JBL Code SVN: r21427 - in labs/jbossrules/trunk/drools-guvnor/src: main/java/org/jboss/seam and 7 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Aug 11 07:11:52 EDT 2008
Author: jervisliu
Date: 2008-08-11 07:11:52 -0400 (Mon, 11 Aug 2008)
New Revision: 21427
Added:
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/jboss/seam/security/
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/jboss/seam/security/permission/
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/jboss/seam/security/permission/RoleBasedPermissionResolver.java
labs/jbossrules/trunk/drools-guvnor/src/test/java/org/jboss/seam/security/
labs/jbossrules/trunk/drools-guvnor/src/test/java/org/jboss/seam/security/permission/
labs/jbossrules/trunk/drools-guvnor/src/test/java/org/jboss/seam/security/permission/RoleBasedPermissionResolverTest.java
Removed:
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/security/RoleBasedPermissionResolver.java
labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/security/RoleBasedPermissionResolverTest.java
Modified:
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/security/CategoryPathType.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/security/PackageNameType.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/security/PackageUUIDType.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/ServiceImplementationTest.java
Log:
Be able to enable/disable RoleBasedPermission check from config: <security:role-based-permission-resolver enable-role-based-authorization="true"/>. By default it is disabled.
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/security/CategoryPathType.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/security/CategoryPathType.java 2008-08-11 10:53:32 UTC (rev 21426)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/security/CategoryPathType.java 2008-08-11 11:11:52 UTC (rev 21427)
@@ -12,7 +12,7 @@
this.categoryPath = categoryPath;
}
- String getCategoryPath() {
+ public String getCategoryPath() {
return categoryPath;
}
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/security/PackageNameType.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/security/PackageNameType.java 2008-08-11 10:53:32 UTC (rev 21426)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/security/PackageNameType.java 2008-08-11 11:11:52 UTC (rev 21427)
@@ -13,7 +13,7 @@
this.packageName = packageName;
}
- String getPackageName() {
+ public String getPackageName() {
return packageName;
}
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/security/PackageUUIDType.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/security/PackageUUIDType.java 2008-08-11 10:53:32 UTC (rev 21426)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/security/PackageUUIDType.java 2008-08-11 11:11:52 UTC (rev 21427)
@@ -13,7 +13,7 @@
this.uuid = uuid;
}
- String getUUID() {
+ public String getUUID() {
return uuid;
}
Deleted: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/security/RoleBasedPermissionResolver.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/security/RoleBasedPermissionResolver.java 2008-08-11 10:53:32 UTC (rev 21426)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/security/RoleBasedPermissionResolver.java 2008-08-11 11:11:52 UTC (rev 21427)
@@ -1,209 +0,0 @@
-package org.drools.guvnor.server.security;
-
-import static org.jboss.seam.ScopeType.APPLICATION;
-
-import java.io.Serializable;
-import java.util.List;
-import java.util.Set;
-
-import org.drools.guvnor.server.ServiceImplementation;
-import org.drools.repository.PackageItem;
-import org.drools.repository.RulesRepositoryException;
-import org.jboss.seam.Component;
-import org.jboss.seam.annotations.Create;
-import org.jboss.seam.annotations.Install;
-import org.jboss.seam.annotations.Name;
-import org.jboss.seam.annotations.Scope;
-import org.jboss.seam.annotations.Startup;
-import org.jboss.seam.annotations.intercept.BypassInterceptors;
-import org.jboss.seam.contexts.Contexts;
-import org.jboss.seam.security.Identity;
-import org.jboss.seam.security.permission.PermissionResolver;
-
-/**
- * PermissionResolvers are chained together to resolve permission check, the check returns true if
- * one of the PermissionResolvers in the chain returns true.
- *
- * This PermissionResolver resolves category-based permissions and package-based permissions.
- *
- * If the input is category-based request, it returns true under following situations:
- *
- * For category-based permissions:
- * 1. The user is admin
- * Or
- * 2. The user has at least one analyst role, and at least one of the analyst role has access to requested category path.
- * Or
- * 3. The user does not have any Analyst role(eg, the user only has other roles like package.admin|package.developer|package.readonly)
- *
- * If the input is package-based request, it returns true under following situations:
- * 1. The user is admin
- * Or
- * 2. The user has one of the following roles package.admin|package.developer|package.readonly on the requested
- * package, and requested role requires lower privilege than assigned role(I.e., package.admin>package.developer>package.readonly)
- * Or
- * 3. The user is Analyst
- *
- *
-
- * @author Jervis Liu
- */
- at Name("org.drools.guvnor.server.security.roleBasedPermissionResolver")
- at Scope(APPLICATION)
- at BypassInterceptors
- at Install(precedence = org.jboss.seam.annotations.Install.APPLICATION)
- at Startup
-public class RoleBasedPermissionResolver implements PermissionResolver,
- Serializable {
-
- private boolean enableRoleBasedAuthorization = false;
-
- @Create
- public void create() {
- }
-
- /**
- * check permission
- *
- * @param requestedObject
- * the requestedObject must be an instance of CategoryPathType,
- * or PackageNameType or PackageUUIDType.
- * Otherwise return false;
- * @param requestedRole
- * the requestedRole must be an instance of String, its value has to be one of the
- * followings: admin|analyst|package.admin|package.developer|package.readonly,
- * otherwise return false;
- * @return true if the permission can be granted on the requested object with the
- * requested role; return false otherwise.
- *
- */
- public boolean hasPermission(Object requestedObject, String requestedRole) {
- if (!((requestedObject instanceof CategoryPathType)
- || (requestedObject instanceof PackageNameType)
- || (requestedObject instanceof PackageUUIDType))) {
- return false;
- }
-
- if (!enableRoleBasedAuthorization) {
- return true;
- }
-
- RoleBasedPermissionStore pbps = (RoleBasedPermissionStore) Component
- .getInstance("org.drools.guvnor.server.security.RoleBasedPermissionStore");
- List<RoleBasedPermission> permissions = pbps
- .getRoleBasedPermissionsByUserName(Identity.instance()
- .getCredentials().getUsername());
-
- for (RoleBasedPermission p : permissions) {
- if (RoleTypes.ADMIN.equalsIgnoreCase(p.getRole())) {
- return true;
- }
- }
-
- if (requestedObject instanceof CategoryPathType) {
- String requestedPath = ((CategoryPathType) requestedObject)
- .getCategoryPath();
-
- //category path based permission check only applies to analyst role. If there is no Analyst
- //role (e.g, only other roles like admin|package.admin|package.dev|package.readonly) we always grant permisssion.
- boolean isPermitted = true;
- //return true when there is no analyst role, or one of the analyst role has permission to access this category
- for (RoleBasedPermission pbp : permissions) {
- if (RoleTypes.ANALYST.equals(pbp.getRole())) {
- isPermitted = false;
- if(isPermittedCategoryPath(requestedPath, pbp.getCategoryPath())) {
- return true;
- }
- }
- }
-
- return isPermitted;
- } else {
- String targetUUDI = "";
-
- if (requestedObject instanceof PackageUUIDType) {
- targetUUDI = ((PackageUUIDType) requestedObject).getUUID();
-
- } else if (requestedObject instanceof PackageNameType) {
- try {
- ServiceImplementation si = (ServiceImplementation) Component
- .getInstance("org.drools.guvnor.client.rpc.RepositoryService");
- PackageItem source = si.repository
- .loadPackage(((PackageNameType) requestedObject)
- .getPackageName());
- targetUUDI = source.getUUID();
- } catch (RulesRepositoryException e) {
- return false;
- }
- }
-
- //package based permission check only applies to admin|package.admin|package.dev|package.readonly role.
- //For Analyst we always grant permission.
- for (RoleBasedPermission pbp : permissions) {
- if (RoleTypes.ANALYST.equals(pbp.getRole())) {
- return true;
- } else if (targetUUDI.equalsIgnoreCase(pbp.getPackageUUID())
- && isPermittedPackage(requestedRole, pbp.getRole())) {
- return true;
- }
- }
-
- return false;
- }
- }
-
- private boolean isPermittedCategoryPath(String requestedPath, String allowedPath) {
- if(requestedPath == null || allowedPath == null) {
- return false;
- }
- return requestedPath.equals(allowedPath) || isSubPath(allowedPath, requestedPath);
- }
-
-
- private boolean isPermittedPackage(String requestedAction, String role) {
- if (RoleTypes.PACKAGE_ADMIN.equalsIgnoreCase(role)) {
- return true;
- } else if (RoleTypes.PACKAGE_DEVELOPER.equalsIgnoreCase(role)) {
- if (RoleTypes.PACKAGE_ADMIN.equalsIgnoreCase(requestedAction)) {
- return false;
- } else if (RoleTypes.PACKAGE_DEVELOPER.equalsIgnoreCase(requestedAction)) {
- return true;
- } else if (RoleTypes.PACKAGE_READONLY.equalsIgnoreCase(requestedAction)) {
- return true;
- }
- } else if (RoleTypes.PACKAGE_READONLY.equalsIgnoreCase(role)) {
- if (RoleTypes.PACKAGE_ADMIN.equalsIgnoreCase(requestedAction)) {
- return false;
- } else if (RoleTypes.PACKAGE_DEVELOPER.equalsIgnoreCase(requestedAction)) {
- return false;
- } else if (RoleTypes.PACKAGE_READONLY.equalsIgnoreCase(requestedAction)) {
- return true;
- }
- }
-
- return false;
- }
-
- boolean isSubPath(String parentPath, String subPath) {
- parentPath = (parentPath.startsWith("/")) ? parentPath.substring(1) : parentPath;
- subPath = (subPath.startsWith("/")) ? subPath.substring(1) : subPath;
- String[] parentTags = parentPath.split("/");
- String[] subTags = subPath.split("/");
- if (parentTags.length > subTags.length) return false;
- for (int i = 0; i < parentTags.length; i++) {
- if (!parentTags[i].equals(subTags[i])) return false;
- }
-
- return true;
- }
-
- public void filterSetByAction(Set<Object> targets, String action) {
- }
-
- public boolean isEnableRoleBasedAuthorization() {
- return enableRoleBasedAuthorization;
- }
-
- public void setEnableRoleBasedAuthorization(boolean enableRoleBasedAuthorization) {
- this.enableRoleBasedAuthorization = enableRoleBasedAuthorization;
- }
-}
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/jboss/seam/security/permission/RoleBasedPermissionResolver.java 2008-08-11 11:11:52 UTC (rev 21427)
@@ -0,0 +1,215 @@
+package org.jboss.seam.security.permission;
+
+import static org.jboss.seam.ScopeType.APPLICATION;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Set;
+
+import org.drools.guvnor.server.ServiceImplementation;
+import org.drools.guvnor.server.security.CategoryPathType;
+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.RoleBasedPermissionStore;
+import org.drools.guvnor.server.security.RoleTypes;
+import org.drools.repository.PackageItem;
+import org.drools.repository.RulesRepositoryException;
+import org.jboss.seam.Component;
+import org.jboss.seam.annotations.Create;
+import org.jboss.seam.annotations.Install;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.annotations.Startup;
+import org.jboss.seam.annotations.intercept.BypassInterceptors;
+import org.jboss.seam.contexts.Contexts;
+import org.jboss.seam.security.Identity;
+import org.jboss.seam.security.permission.PermissionResolver;
+
+/**
+ * PermissionResolvers are chained together to resolve permission check, the check returns true if
+ * one of the PermissionResolvers in the chain returns true.
+ *
+ * This PermissionResolver resolves category-based permissions and package-based permissions.
+ *
+ * If the input is category-based request, it returns true under following situations:
+ *
+ * For category-based permissions:
+ * 1. The user is admin
+ * Or
+ * 2. The user has at least one analyst role, and at least one of the analyst role has access to requested category path.
+ * Or
+ * 3. The user does not have any Analyst role(eg, the user only has other roles like package.admin|package.developer|package.readonly)
+ *
+ * If the input is package-based request, it returns true under following situations:
+ * 1. The user is admin
+ * Or
+ * 2. The user has one of the following roles package.admin|package.developer|package.readonly on the requested
+ * package, and requested role requires lower privilege than assigned role(I.e., package.admin>package.developer>package.readonly)
+ * Or
+ * 3. The user is Analyst
+ *
+ *
+
+ * @author Jervis Liu
+ */
+ at Name("org.jboss.seam.security.roleBasedPermissionResolver")
+ at Scope(APPLICATION)
+ at BypassInterceptors
+ at Install(precedence = org.jboss.seam.annotations.Install.APPLICATION)
+ at Startup
+public class RoleBasedPermissionResolver implements PermissionResolver,
+ Serializable {
+
+ private boolean enableRoleBasedAuthorization = false;
+
+ @Create
+ public void create() {
+ }
+
+ /**
+ * check permission
+ *
+ * @param requestedObject
+ * the requestedObject must be an instance of CategoryPathType,
+ * or PackageNameType or PackageUUIDType.
+ * Otherwise return false;
+ * @param requestedRole
+ * the requestedRole must be an instance of String, its value has to be one of the
+ * followings: admin|analyst|package.admin|package.developer|package.readonly,
+ * otherwise return false;
+ * @return true if the permission can be granted on the requested object with the
+ * requested role; return false otherwise.
+ *
+ */
+ public boolean hasPermission(Object requestedObject, String requestedRole) {
+ if (!((requestedObject instanceof CategoryPathType)
+ || (requestedObject instanceof PackageNameType)
+ || (requestedObject instanceof PackageUUIDType))) {
+ return false;
+ }
+
+ if (!enableRoleBasedAuthorization) {
+ return true;
+ }
+
+ RoleBasedPermissionStore pbps = (RoleBasedPermissionStore) Component
+ .getInstance("org.drools.guvnor.server.security.RoleBasedPermissionStore");
+ List<RoleBasedPermission> permissions = pbps
+ .getRoleBasedPermissionsByUserName(Identity.instance()
+ .getCredentials().getUsername());
+
+ for (RoleBasedPermission p : permissions) {
+ if (RoleTypes.ADMIN.equalsIgnoreCase(p.getRole())) {
+ return true;
+ }
+ }
+
+ if (requestedObject instanceof CategoryPathType) {
+ String requestedPath = ((CategoryPathType) requestedObject)
+ .getCategoryPath();
+
+ //category path based permission check only applies to analyst role. If there is no Analyst
+ //role (e.g, only other roles like admin|package.admin|package.dev|package.readonly) we always grant permisssion.
+ boolean isPermitted = true;
+ //return true when there is no analyst role, or one of the analyst role has permission to access this category
+ for (RoleBasedPermission pbp : permissions) {
+ if (RoleTypes.ANALYST.equals(pbp.getRole())) {
+ isPermitted = false;
+ if(isPermittedCategoryPath(requestedPath, pbp.getCategoryPath())) {
+ return true;
+ }
+ }
+ }
+
+ return isPermitted;
+ } else {
+ String targetUUDI = "";
+
+ if (requestedObject instanceof PackageUUIDType) {
+ targetUUDI = ((PackageUUIDType) requestedObject).getUUID();
+
+ } else if (requestedObject instanceof PackageNameType) {
+ try {
+ ServiceImplementation si = (ServiceImplementation) Component
+ .getInstance("org.drools.guvnor.client.rpc.RepositoryService");
+ PackageItem source = si.repository
+ .loadPackage(((PackageNameType) requestedObject)
+ .getPackageName());
+ targetUUDI = source.getUUID();
+ } catch (RulesRepositoryException e) {
+ return false;
+ }
+ }
+
+ //package based permission check only applies to admin|package.admin|package.dev|package.readonly role.
+ //For Analyst we always grant permission.
+ for (RoleBasedPermission pbp : permissions) {
+ if (RoleTypes.ANALYST.equals(pbp.getRole())) {
+ return true;
+ } else if (targetUUDI.equalsIgnoreCase(pbp.getPackageUUID())
+ && isPermittedPackage(requestedRole, pbp.getRole())) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+ }
+
+ private boolean isPermittedCategoryPath(String requestedPath, String allowedPath) {
+ if(requestedPath == null || allowedPath == null) {
+ return false;
+ }
+ return requestedPath.equals(allowedPath) || isSubPath(allowedPath, requestedPath);
+ }
+
+
+ private boolean isPermittedPackage(String requestedAction, String role) {
+ if (RoleTypes.PACKAGE_ADMIN.equalsIgnoreCase(role)) {
+ return true;
+ } else if (RoleTypes.PACKAGE_DEVELOPER.equalsIgnoreCase(role)) {
+ if (RoleTypes.PACKAGE_ADMIN.equalsIgnoreCase(requestedAction)) {
+ return false;
+ } else if (RoleTypes.PACKAGE_DEVELOPER.equalsIgnoreCase(requestedAction)) {
+ return true;
+ } else if (RoleTypes.PACKAGE_READONLY.equalsIgnoreCase(requestedAction)) {
+ return true;
+ }
+ } else if (RoleTypes.PACKAGE_READONLY.equalsIgnoreCase(role)) {
+ if (RoleTypes.PACKAGE_ADMIN.equalsIgnoreCase(requestedAction)) {
+ return false;
+ } else if (RoleTypes.PACKAGE_DEVELOPER.equalsIgnoreCase(requestedAction)) {
+ return false;
+ } else if (RoleTypes.PACKAGE_READONLY.equalsIgnoreCase(requestedAction)) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ boolean isSubPath(String parentPath, String subPath) {
+ parentPath = (parentPath.startsWith("/")) ? parentPath.substring(1) : parentPath;
+ subPath = (subPath.startsWith("/")) ? subPath.substring(1) : subPath;
+ String[] parentTags = parentPath.split("/");
+ String[] subTags = subPath.split("/");
+ if (parentTags.length > subTags.length) return false;
+ for (int i = 0; i < parentTags.length; i++) {
+ if (!parentTags[i].equals(subTags[i])) return false;
+ }
+
+ return true;
+ }
+
+ public void filterSetByAction(Set<Object> targets, String action) {
+ }
+
+ public boolean isEnableRoleBasedAuthorization() {
+ return enableRoleBasedAuthorization;
+ }
+
+ public void setEnableRoleBasedAuthorization(boolean enableRoleBasedAuthorization) {
+ this.enableRoleBasedAuthorization = enableRoleBasedAuthorization;
+ }
+}
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-11 10:53:32 UTC (rev 21426)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplSecurityTest.java 2008-08-11 11:11:52 UTC (rev 21427)
@@ -14,9 +14,8 @@
import org.drools.guvnor.client.rpc.TableDataResult;
import org.drools.guvnor.client.rpc.TableDataRow;
import org.drools.guvnor.client.rulelist.AssetItemGrid;
+import org.drools.guvnor.server.security.MockIdentity;
import org.drools.guvnor.server.security.MockRoleBasedPermissionStore;
-import org.drools.guvnor.server.security.RoleBasedPermissionResolver;
-import org.drools.guvnor.server.security.MockIdentity;
import org.drools.guvnor.server.security.RoleBasedPermission;
import org.drools.guvnor.server.security.RoleTypes;
import org.drools.guvnor.server.util.TestEnvironmentSessionHelper;
@@ -27,6 +26,7 @@
import org.jboss.seam.contexts.Lifecycle;
import org.jboss.seam.security.AuthorizationException;
import org.jboss.seam.security.permission.PermissionResolver;
+import org.jboss.seam.security.permission.RoleBasedPermissionResolver;
import junit.framework.TestCase;
Modified: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java 2008-08-11 10:53:32 UTC (rev 21426)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java 2008-08-11 11:11:52 UTC (rev 21427)
@@ -67,7 +67,6 @@
import org.drools.guvnor.client.rpc.ValidatedResponse;
import org.drools.guvnor.client.rulelist.AssetItemGrid;
import org.drools.guvnor.server.ServiceImplementation;
-import org.drools.guvnor.server.security.RoleBasedPermissionResolver;
import org.drools.guvnor.server.security.MockIdentity;
import org.drools.guvnor.server.security.PackageNameType;
import org.drools.guvnor.server.security.RoleTypes;
@@ -91,6 +90,7 @@
import org.jboss.seam.contexts.Lifecycle;
import org.jboss.seam.security.AuthorizationException;
import org.jboss.seam.security.permission.PermissionResolver;
+import org.jboss.seam.security.permission.RoleBasedPermissionResolver;
import com.google.gwt.user.client.rpc.IsSerializable;
import com.google.gwt.user.client.rpc.SerializableException;
Deleted: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/security/RoleBasedPermissionResolverTest.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/security/RoleBasedPermissionResolverTest.java 2008-08-11 10:53:32 UTC (rev 21426)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/security/RoleBasedPermissionResolverTest.java 2008-08-11 11:11:52 UTC (rev 21427)
@@ -1,207 +0,0 @@
-package org.drools.guvnor.server.security;
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed 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.
- */
-
-
-
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.jboss.seam.contexts.Contexts;
-import org.jboss.seam.contexts.Lifecycle;
-import org.jboss.seam.security.Identity;
-
-import junit.framework.TestCase;
-
-public class RoleBasedPermissionResolverTest extends TestCase {
-
- public void testCategoryBasedPermissionAnalyst() throws Exception {
- //Mock up SEAM contexts
- Map application = new HashMap<String, Object>();
- Lifecycle.beginApplication(application);
- Lifecycle.beginCall();
- MockIdentity midentity = new MockIdentity();
- Contexts.getSessionContext().set("org.jboss.seam.security.identity", midentity);
-
- List<RoleBasedPermission> pbps = new ArrayList<RoleBasedPermission>();
- pbps.add(new RoleBasedPermission("jervis", RoleTypes.PACKAGE_ADMIN, "631b3d79-5b67-42fb-83da-714624970a6b", null));
- pbps.add(new RoleBasedPermission("jervis", RoleTypes.PACKAGE_READONLY, "47982482-7912-4881-97ec-e852494383d7", null));
- pbps.add(new RoleBasedPermission("jervis", RoleTypes.ANALYST, null, "category1"));
- pbps.add(new RoleBasedPermission("jervis", RoleTypes.ANALYST, null, "category2"));
- MockRoleBasedPermissionStore store = new MockRoleBasedPermissionStore(pbps);
- Contexts.getSessionContext().set("org.drools.guvnor.server.security.RoleBasedPermissionStore", store);
-
- RoleBasedPermissionResolver resolver = new RoleBasedPermissionResolver();
- resolver.setEnableRoleBasedAuthorization(true);
-
- assertTrue(resolver.hasPermission(new CategoryPathType("category1"), null));
- assertTrue(resolver.hasPermission(new CategoryPathType("category2"), null));
- assertFalse(resolver.hasPermission(new CategoryPathType("category3/category3"), null));
- assertTrue(resolver.hasPermission(new CategoryPathType("/category1/category2"), null));
-
- Lifecycle.endApplication();
- }
-
- public void testIsSubPath() {
- RoleBasedPermissionResolver pr = new RoleBasedPermissionResolver();
- assertTrue(pr.isSubPath("foo", "foo/bar"));
- assertTrue(pr.isSubPath("foo", "/foo/bar"));
- assertTrue(pr.isSubPath("/foo/bar", "/foo/bar"));
- assertFalse(pr.isSubPath("/foo/bar", "foo"));
-
- assertTrue(pr.isSubPath("foo", "foo/bar/baz"));
- assertTrue(pr.isSubPath("foo/bar", "foo/bar/baz"));
- assertFalse(pr.isSubPath("wang", "foo/bar/baz"));
- assertFalse(pr.isSubPath("wang/whee", "foo/bar/baz"));
-
- assertFalse(pr.isSubPath("foo1", "foo2"));
- assertTrue(pr.isSubPath("foo1", "foo1"));
- }
-
-
- //admin: everything
- public void testPackageBasedPermissionAdmin() throws Exception {
- //Mock up SEAM contexts
- Map application = new HashMap<String, Object>();
- Lifecycle.beginApplication(application);
- Lifecycle.beginCall();
- MockIdentity midentity = new MockIdentity();
- Contexts.getSessionContext().set("org.jboss.seam.security.identity", midentity);
-
-
- List<RoleBasedPermission> pbps = new ArrayList<RoleBasedPermission>();
- pbps.add(new RoleBasedPermission("jervis", RoleTypes.ADMIN, "631b3d79-5b67-42fb-83da-714624970a6b", null));
- pbps.add(new RoleBasedPermission("jervis", RoleTypes.PACKAGE_READONLY, "47982482-7912-4881-97ec-e852494383d7", null));
- MockRoleBasedPermissionStore store = new MockRoleBasedPermissionStore(pbps);
- Contexts.getSessionContext().set("org.drools.guvnor.server.security.RoleBasedPermissionStore", store);
-
- RoleBasedPermissionResolver resolver = new RoleBasedPermissionResolver();
- resolver.setEnableRoleBasedAuthorization(true);
-
- assertTrue(resolver.hasPermission(new PackageUUIDType("631b3d79-5b67-42fb-83da-714624970a6b"), RoleTypes.ADMIN));
- assertTrue(resolver.hasPermission(new PackageUUIDType("47982482-7912-4881-97ec-e852494383d7"), RoleTypes.ADMIN));
-
- Lifecycle.endApplication();
- }
-
- //Package.admin: everything for that package, including creating snapshots for that package.
- public void testPackageBasedPermissionPackageAdmin() throws Exception {
- //Mock up SEAM contexts
- Map application = new HashMap<String, Object>();
- Lifecycle.beginApplication(application);
- Lifecycle.beginCall();
- MockIdentity midentity = new MockIdentity();
- Contexts.getSessionContext().set("org.jboss.seam.security.identity", midentity);
-
- List<RoleBasedPermission> pbps = new ArrayList<RoleBasedPermission>();
- pbps.add(new RoleBasedPermission("jervis", RoleTypes.PACKAGE_ADMIN, "631b3d79-5b67-42fb-83da-714624970a6b", null));
- MockRoleBasedPermissionStore store = new MockRoleBasedPermissionStore(pbps);
- Contexts.getSessionContext().set("org.drools.guvnor.server.security.RoleBasedPermissionStore", store);
-
- RoleBasedPermissionResolver resolver = new RoleBasedPermissionResolver();
- resolver.setEnableRoleBasedAuthorization(true);
-
- assertTrue(resolver.hasPermission(new PackageUUIDType("631b3d79-5b67-42fb-83da-714624970a6b"), RoleTypes.PACKAGE_ADMIN));
- assertTrue(resolver.hasPermission(new PackageUUIDType("631b3d79-5b67-42fb-83da-714624970a6b"), RoleTypes.PACKAGE_DEVELOPER));
- assertTrue(resolver.hasPermission(new PackageUUIDType("631b3d79-5b67-42fb-83da-714624970a6b"), RoleTypes.PACKAGE_READONLY));
-
- assertFalse(resolver.hasPermission("47982482-7912-4881-97ec-e852494383d7", RoleTypes.PACKAGE_READONLY));
-
- Lifecycle.endApplication();
- }
-
- //Package.developer: everything for that package, NOT snapshots (can view snapshots of that package only)
- public void testPackageBasedPermissionPackageDeveloper() throws Exception {
- //Mock up SEAM contexts
- Map application = new HashMap<String, Object>();
- Lifecycle.beginApplication(application);
- Lifecycle.beginCall();
- MockIdentity midentity = new MockIdentity();
- Contexts.getSessionContext().set("org.jboss.seam.security.identity", midentity);
-
-
- List<RoleBasedPermission> pbps = new ArrayList<RoleBasedPermission>();
- pbps.add(new RoleBasedPermission("jervis", RoleTypes.PACKAGE_DEVELOPER, "47982482-7912-4881-97ec-e852494383d7", null));
- MockRoleBasedPermissionStore store = new MockRoleBasedPermissionStore(pbps);
- Contexts.getSessionContext().set("org.drools.guvnor.server.security.RoleBasedPermissionStore", store);
-
- RoleBasedPermissionResolver resolver = new RoleBasedPermissionResolver();
- resolver.setEnableRoleBasedAuthorization(true);
-
- assertFalse(resolver.hasPermission(new PackageUUIDType("47982482-7912-4881-97ec-e852494383d7"), RoleTypes.PACKAGE_ADMIN));
- assertTrue(resolver.hasPermission(new PackageUUIDType("47982482-7912-4881-97ec-e852494383d7"), RoleTypes.PACKAGE_DEVELOPER));
- assertTrue(resolver.hasPermission(new PackageUUIDType("47982482-7912-4881-97ec-e852494383d7"), RoleTypes.PACKAGE_READONLY));
-
- assertFalse(resolver.hasPermission("631b3d79-5b67-42fb-83da-714624970a6b", RoleTypes.PACKAGE_READONLY));
-
- Lifecycle.endApplication();
- }
-
- //Package.readonly: read only as the name suggested
- public void testPackageBasedPermissionPackageReadOnly() throws Exception {
- //Mock up SEAM contexts
- Map application = new HashMap<String, Object>();
- Lifecycle.beginApplication(application);
- Lifecycle.beginCall();
- MockIdentity midentity = new MockIdentity();
- Contexts.getSessionContext().set("org.jboss.seam.security.identity", midentity);
-
-
- List<RoleBasedPermission> pbps = new ArrayList<RoleBasedPermission>();
- pbps.add(new RoleBasedPermission("jervis", RoleTypes.PACKAGE_READONLY, "47982482-7912-4881-97ec-e852494383d7", null));
- MockRoleBasedPermissionStore store = new MockRoleBasedPermissionStore(pbps);
- Contexts.getSessionContext().set("org.drools.guvnor.server.security.RoleBasedPermissionStore", store);
-
- RoleBasedPermissionResolver resolver = new RoleBasedPermissionResolver();
- resolver.setEnableRoleBasedAuthorization(true);
-
- assertFalse(resolver.hasPermission(new PackageUUIDType("47982482-7912-4881-97ec-e852494383d7"), RoleTypes.PACKAGE_DEVELOPER));
- assertFalse(resolver.hasPermission(new PackageUUIDType("47982482-7912-4881-97ec-e852494383d7"), RoleTypes.PACKAGE_DEVELOPER));
- assertTrue(resolver.hasPermission(new PackageUUIDType("47982482-7912-4881-97ec-e852494383d7"), RoleTypes.PACKAGE_READONLY));
-
- assertFalse(resolver.hasPermission("631b3d79-5b67-42fb-83da-714624970a6b", RoleTypes.PACKAGE_READONLY));
-
- Lifecycle.endApplication();
- }
-
- public void testPackageBasedPermissionAnalyst() throws Exception {
- //Mock up SEAM contexts
- Map application = new HashMap<String, Object>();
- Lifecycle.beginApplication(application);
- Lifecycle.beginCall();
- MockIdentity midentity = new MockIdentity();
- Contexts.getSessionContext().set("org.jboss.seam.security.identity", midentity);
-
-
- List<RoleBasedPermission> pbps = new ArrayList<RoleBasedPermission>();
- pbps.add(new RoleBasedPermission("jervis", RoleTypes.PACKAGE_READONLY, "47982482-7912-4881-97ec-e852494383d7", null));
- pbps.add(new RoleBasedPermission("jervis", RoleTypes.ANALYST, null, "category1"));
- MockRoleBasedPermissionStore store = new MockRoleBasedPermissionStore(pbps);
- Contexts.getSessionContext().set("org.drools.guvnor.server.security.RoleBasedPermissionStore", store);
-
- RoleBasedPermissionResolver resolver = new RoleBasedPermissionResolver();
- resolver.setEnableRoleBasedAuthorization(true);
-
- assertTrue(resolver.hasPermission(new PackageUUIDType("47982482-7912-4881-97ec-e852494383d7"), RoleTypes.ANALYST));
- assertTrue(resolver.hasPermission(new PackageUUIDType("631b3d79-5b67-42fb-83da-714624970a6b"), RoleTypes.ANALYST));
-
- Lifecycle.endApplication();
- }
-
- }
\ No newline at end of file
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/jboss/seam/security/permission/RoleBasedPermissionResolverTest.java 2008-08-11 11:11:52 UTC (rev 21427)
@@ -0,0 +1,213 @@
+package org.jboss.seam.security.permission;
+/*
+ * Copyright 2005 JBoss Inc
+ *
+ * Licensed 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.
+ */
+
+
+
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.drools.guvnor.server.security.CategoryPathType;
+import org.drools.guvnor.server.security.MockIdentity;
+import org.drools.guvnor.server.security.MockRoleBasedPermissionStore;
+import org.drools.guvnor.server.security.PackageUUIDType;
+import org.drools.guvnor.server.security.RoleBasedPermission;
+import org.drools.guvnor.server.security.RoleTypes;
+import org.jboss.seam.contexts.Contexts;
+import org.jboss.seam.contexts.Lifecycle;
+import org.jboss.seam.security.Identity;
+
+import junit.framework.TestCase;
+
+public class RoleBasedPermissionResolverTest extends TestCase {
+
+ public void testCategoryBasedPermissionAnalyst() throws Exception {
+ //Mock up SEAM contexts
+ Map application = new HashMap<String, Object>();
+ Lifecycle.beginApplication(application);
+ Lifecycle.beginCall();
+ MockIdentity midentity = new MockIdentity();
+ Contexts.getSessionContext().set("org.jboss.seam.security.identity", midentity);
+
+ List<RoleBasedPermission> pbps = new ArrayList<RoleBasedPermission>();
+ pbps.add(new RoleBasedPermission("jervis", RoleTypes.PACKAGE_ADMIN, "631b3d79-5b67-42fb-83da-714624970a6b", null));
+ pbps.add(new RoleBasedPermission("jervis", RoleTypes.PACKAGE_READONLY, "47982482-7912-4881-97ec-e852494383d7", null));
+ pbps.add(new RoleBasedPermission("jervis", RoleTypes.ANALYST, null, "category1"));
+ pbps.add(new RoleBasedPermission("jervis", RoleTypes.ANALYST, null, "category2"));
+ MockRoleBasedPermissionStore store = new MockRoleBasedPermissionStore(pbps);
+ Contexts.getSessionContext().set("org.drools.guvnor.server.security.RoleBasedPermissionStore", store);
+
+ RoleBasedPermissionResolver resolver = new RoleBasedPermissionResolver();
+ resolver.setEnableRoleBasedAuthorization(true);
+
+ assertTrue(resolver.hasPermission(new CategoryPathType("category1"), null));
+ assertTrue(resolver.hasPermission(new CategoryPathType("category2"), null));
+ assertFalse(resolver.hasPermission(new CategoryPathType("category3/category3"), null));
+ assertTrue(resolver.hasPermission(new CategoryPathType("/category1/category2"), null));
+
+ Lifecycle.endApplication();
+ }
+
+ public void testIsSubPath() {
+ RoleBasedPermissionResolver pr = new RoleBasedPermissionResolver();
+ assertTrue(pr.isSubPath("foo", "foo/bar"));
+ assertTrue(pr.isSubPath("foo", "/foo/bar"));
+ assertTrue(pr.isSubPath("/foo/bar", "/foo/bar"));
+ assertFalse(pr.isSubPath("/foo/bar", "foo"));
+
+ assertTrue(pr.isSubPath("foo", "foo/bar/baz"));
+ assertTrue(pr.isSubPath("foo/bar", "foo/bar/baz"));
+ assertFalse(pr.isSubPath("wang", "foo/bar/baz"));
+ assertFalse(pr.isSubPath("wang/whee", "foo/bar/baz"));
+
+ assertFalse(pr.isSubPath("foo1", "foo2"));
+ assertTrue(pr.isSubPath("foo1", "foo1"));
+ }
+
+
+ //admin: everything
+ public void testPackageBasedPermissionAdmin() throws Exception {
+ //Mock up SEAM contexts
+ Map application = new HashMap<String, Object>();
+ Lifecycle.beginApplication(application);
+ Lifecycle.beginCall();
+ MockIdentity midentity = new MockIdentity();
+ Contexts.getSessionContext().set("org.jboss.seam.security.identity", midentity);
+
+
+ List<RoleBasedPermission> pbps = new ArrayList<RoleBasedPermission>();
+ pbps.add(new RoleBasedPermission("jervis", RoleTypes.ADMIN, "631b3d79-5b67-42fb-83da-714624970a6b", null));
+ pbps.add(new RoleBasedPermission("jervis", RoleTypes.PACKAGE_READONLY, "47982482-7912-4881-97ec-e852494383d7", null));
+ MockRoleBasedPermissionStore store = new MockRoleBasedPermissionStore(pbps);
+ Contexts.getSessionContext().set("org.drools.guvnor.server.security.RoleBasedPermissionStore", store);
+
+ RoleBasedPermissionResolver resolver = new RoleBasedPermissionResolver();
+ resolver.setEnableRoleBasedAuthorization(true);
+
+ assertTrue(resolver.hasPermission(new PackageUUIDType("631b3d79-5b67-42fb-83da-714624970a6b"), RoleTypes.ADMIN));
+ assertTrue(resolver.hasPermission(new PackageUUIDType("47982482-7912-4881-97ec-e852494383d7"), RoleTypes.ADMIN));
+
+ Lifecycle.endApplication();
+ }
+
+ //Package.admin: everything for that package, including creating snapshots for that package.
+ public void testPackageBasedPermissionPackageAdmin() throws Exception {
+ //Mock up SEAM contexts
+ Map application = new HashMap<String, Object>();
+ Lifecycle.beginApplication(application);
+ Lifecycle.beginCall();
+ MockIdentity midentity = new MockIdentity();
+ Contexts.getSessionContext().set("org.jboss.seam.security.identity", midentity);
+
+ List<RoleBasedPermission> pbps = new ArrayList<RoleBasedPermission>();
+ pbps.add(new RoleBasedPermission("jervis", RoleTypes.PACKAGE_ADMIN, "631b3d79-5b67-42fb-83da-714624970a6b", null));
+ MockRoleBasedPermissionStore store = new MockRoleBasedPermissionStore(pbps);
+ Contexts.getSessionContext().set("org.drools.guvnor.server.security.RoleBasedPermissionStore", store);
+
+ RoleBasedPermissionResolver resolver = new RoleBasedPermissionResolver();
+ resolver.setEnableRoleBasedAuthorization(true);
+
+ assertTrue(resolver.hasPermission(new PackageUUIDType("631b3d79-5b67-42fb-83da-714624970a6b"), RoleTypes.PACKAGE_ADMIN));
+ assertTrue(resolver.hasPermission(new PackageUUIDType("631b3d79-5b67-42fb-83da-714624970a6b"), RoleTypes.PACKAGE_DEVELOPER));
+ assertTrue(resolver.hasPermission(new PackageUUIDType("631b3d79-5b67-42fb-83da-714624970a6b"), RoleTypes.PACKAGE_READONLY));
+
+ assertFalse(resolver.hasPermission("47982482-7912-4881-97ec-e852494383d7", RoleTypes.PACKAGE_READONLY));
+
+ Lifecycle.endApplication();
+ }
+
+ //Package.developer: everything for that package, NOT snapshots (can view snapshots of that package only)
+ public void testPackageBasedPermissionPackageDeveloper() throws Exception {
+ //Mock up SEAM contexts
+ Map application = new HashMap<String, Object>();
+ Lifecycle.beginApplication(application);
+ Lifecycle.beginCall();
+ MockIdentity midentity = new MockIdentity();
+ Contexts.getSessionContext().set("org.jboss.seam.security.identity", midentity);
+
+
+ List<RoleBasedPermission> pbps = new ArrayList<RoleBasedPermission>();
+ pbps.add(new RoleBasedPermission("jervis", RoleTypes.PACKAGE_DEVELOPER, "47982482-7912-4881-97ec-e852494383d7", null));
+ MockRoleBasedPermissionStore store = new MockRoleBasedPermissionStore(pbps);
+ Contexts.getSessionContext().set("org.drools.guvnor.server.security.RoleBasedPermissionStore", store);
+
+ RoleBasedPermissionResolver resolver = new RoleBasedPermissionResolver();
+ resolver.setEnableRoleBasedAuthorization(true);
+
+ assertFalse(resolver.hasPermission(new PackageUUIDType("47982482-7912-4881-97ec-e852494383d7"), RoleTypes.PACKAGE_ADMIN));
+ assertTrue(resolver.hasPermission(new PackageUUIDType("47982482-7912-4881-97ec-e852494383d7"), RoleTypes.PACKAGE_DEVELOPER));
+ assertTrue(resolver.hasPermission(new PackageUUIDType("47982482-7912-4881-97ec-e852494383d7"), RoleTypes.PACKAGE_READONLY));
+
+ assertFalse(resolver.hasPermission("631b3d79-5b67-42fb-83da-714624970a6b", RoleTypes.PACKAGE_READONLY));
+
+ Lifecycle.endApplication();
+ }
+
+ //Package.readonly: read only as the name suggested
+ public void testPackageBasedPermissionPackageReadOnly() throws Exception {
+ //Mock up SEAM contexts
+ Map application = new HashMap<String, Object>();
+ Lifecycle.beginApplication(application);
+ Lifecycle.beginCall();
+ MockIdentity midentity = new MockIdentity();
+ Contexts.getSessionContext().set("org.jboss.seam.security.identity", midentity);
+
+
+ List<RoleBasedPermission> pbps = new ArrayList<RoleBasedPermission>();
+ pbps.add(new RoleBasedPermission("jervis", RoleTypes.PACKAGE_READONLY, "47982482-7912-4881-97ec-e852494383d7", null));
+ MockRoleBasedPermissionStore store = new MockRoleBasedPermissionStore(pbps);
+ Contexts.getSessionContext().set("org.drools.guvnor.server.security.RoleBasedPermissionStore", store);
+
+ RoleBasedPermissionResolver resolver = new RoleBasedPermissionResolver();
+ resolver.setEnableRoleBasedAuthorization(true);
+
+ assertFalse(resolver.hasPermission(new PackageUUIDType("47982482-7912-4881-97ec-e852494383d7"), RoleTypes.PACKAGE_DEVELOPER));
+ assertFalse(resolver.hasPermission(new PackageUUIDType("47982482-7912-4881-97ec-e852494383d7"), RoleTypes.PACKAGE_DEVELOPER));
+ assertTrue(resolver.hasPermission(new PackageUUIDType("47982482-7912-4881-97ec-e852494383d7"), RoleTypes.PACKAGE_READONLY));
+
+ assertFalse(resolver.hasPermission("631b3d79-5b67-42fb-83da-714624970a6b", RoleTypes.PACKAGE_READONLY));
+
+ Lifecycle.endApplication();
+ }
+
+ public void testPackageBasedPermissionAnalyst() throws Exception {
+ //Mock up SEAM contexts
+ Map application = new HashMap<String, Object>();
+ Lifecycle.beginApplication(application);
+ Lifecycle.beginCall();
+ MockIdentity midentity = new MockIdentity();
+ Contexts.getSessionContext().set("org.jboss.seam.security.identity", midentity);
+
+
+ List<RoleBasedPermission> pbps = new ArrayList<RoleBasedPermission>();
+ pbps.add(new RoleBasedPermission("jervis", RoleTypes.PACKAGE_READONLY, "47982482-7912-4881-97ec-e852494383d7", null));
+ pbps.add(new RoleBasedPermission("jervis", RoleTypes.ANALYST, null, "category1"));
+ MockRoleBasedPermissionStore store = new MockRoleBasedPermissionStore(pbps);
+ Contexts.getSessionContext().set("org.drools.guvnor.server.security.RoleBasedPermissionStore", store);
+
+ RoleBasedPermissionResolver resolver = new RoleBasedPermissionResolver();
+ resolver.setEnableRoleBasedAuthorization(true);
+
+ assertTrue(resolver.hasPermission(new PackageUUIDType("47982482-7912-4881-97ec-e852494383d7"), RoleTypes.ANALYST));
+ assertTrue(resolver.hasPermission(new PackageUUIDType("631b3d79-5b67-42fb-83da-714624970a6b"), RoleTypes.ANALYST));
+
+ Lifecycle.endApplication();
+ }
+
+ }
\ No newline at end of file
More information about the jboss-svn-commits
mailing list