[jboss-cvs] JBossAS SVN: r65847 - in projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb: spec and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Oct 4 11:46:26 EDT 2007


Author: scott.stark at jboss.org
Date: 2007-10-04 11:46:25 -0400 (Thu, 04 Oct 2007)
New Revision: 65847

Modified:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeanMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/MethodMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/MethodPermissionMetaData.java
Log:
Correct handling of method permission checks

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeanMetaData.java	2007-10-04 15:45:10 UTC (rev 65846)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeanMetaData.java	2007-10-04 15:46:25 UTC (rev 65847)
@@ -873,7 +873,7 @@
     */
    public SecurityRoleMetaData getSecurityRole(String roleName)
    {
-      JBossAssemblyDescriptorMetaData assemblyDescriptor = getJBossMetaDataWithCheck().getAssemblyDescriptor();
+      JBossAssemblyDescriptorMetaData assemblyDescriptor = getJBossMetaDataWithCheck().getMergedAssemblyDescriptor();
       if (assemblyDescriptor == null)
          return null;
       else
@@ -888,7 +888,7 @@
     */
    public Set<String> getSecurityRolePrincipals(String roleName)
    {
-      JBossAssemblyDescriptorMetaData assemblyDescriptor = getJBossMetaDataWithCheck().getAssemblyDescriptor();
+      JBossAssemblyDescriptorMetaData assemblyDescriptor = getJBossMetaDataWithCheck().getMergedAssemblyDescriptor();
       if (assemblyDescriptor == null)
          return null;
       else
@@ -948,18 +948,21 @@
                Set<String> roles = permission.getRoles();
                if (roles != null)
                {
+                  if (result == null)
+                     result = new HashSet<Principal>();
                   for (String roleName : roles)
                   {
+                     // Get any extra principal names assigned to the role
                      Set<String> principals = getSecurityRolePrincipals(roleName);
                      if (principals != null)
                      {
                         for (String principal : principals)
                         {
-                           if (result == null)
-                              result = new HashSet<Principal>();
                            result.add(new SimplePrincipal(principal));
                         }
                      }
+                     // Also add the role name itself
+                     result.add(new SimplePrincipal(roleName));
                   }
                }
             }

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/MethodMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/MethodMetaData.java	2007-10-04 15:45:10 UTC (rev 65846)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/MethodMetaData.java	2007-10-04 15:46:25 UTC (rev 65847)
@@ -247,4 +247,20 @@
    {
       return MethodInterfaceType.ServiceEndpoint == methodInterface;
    }
+
+   @Override
+   public String toString()
+   {
+      StringBuilder tmp = new StringBuilder("MethodMetaData(");
+      tmp.append("ejbName=");
+      tmp.append(ejbName);
+      tmp.append(",interface=");
+      tmp.append(methodInterface);
+      tmp.append(",method=");
+      tmp.append(methodName);
+      tmp.append(",params=");
+      tmp.append(methodParams);
+      tmp.append(')');
+      return tmp.toString();
+   }
 }

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/MethodPermissionMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/MethodPermissionMetaData.java	2007-10-04 15:45:10 UTC (rev 65846)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/MethodPermissionMetaData.java	2007-10-04 15:46:25 UTC (rev 65847)
@@ -25,7 +25,6 @@
 
 import org.jboss.metadata.javaee.spec.EmptyMetaData;
 import org.jboss.metadata.javaee.support.IdMetaDataImplWithDescriptions;
-import org.jboss.metadata.javaee.support.NonNullLinkedHashSet;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlType;
 
@@ -103,7 +102,7 @@
     * 
     * @param roles the roles.
     */
-   @XmlElement(name="role-name", type=NonNullLinkedHashSet.class)
+   @XmlElement(name="role-name"/*, type=NonNullLinkedHashSet.class*/)
    public void setRoles(Set<String> roles)
    {
       this.roles = roles;
@@ -192,4 +191,24 @@
          return false;
       return matches(methodName, params, interfaceType);
    }
+
+   @Override
+   public String toString()
+   {
+      StringBuilder tmp = new StringBuilder("MethodPermissionMetaData(id=");
+      tmp.append(getId());
+      if (isNotChecked())
+      {
+         tmp.append(",unchecked=true");
+      }
+      else
+      {
+         tmp.append(",roles=");
+         tmp.append(this.roles);
+      }
+      tmp.append(",methods=");
+      tmp.append(this.methods);
+      tmp.append(')');
+      return tmp.toString();
+   }
 }




More information about the jboss-cvs-commits mailing list