[jboss-cvs] jboss-seam/src/main/org/jboss/seam/security/acl ...

Shane Bryzak Shane_Bryzak at symantec.com
Wed Nov 8 18:28:38 EST 2006


  User: sbryzak2
  Date: 06/11/08 18:28:38

  Modified:    src/main/org/jboss/seam/security/acl     AclProvider.java
                        PersistentAclProvider.java
  Added:       src/main/org/jboss/seam/security/acl    
                        DefaultIdentityGenerator.java
                        IdentityGenerator.java
  Log:
  moved security annotations to org.jboss.seam.annotations.security, other security changes
  
  Revision  Changes    Path
  1.3       +2 -0      jboss-seam/src/main/org/jboss/seam/security/acl/AclProvider.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: AclProvider.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/security/acl/AclProvider.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -b -r1.2 -r1.3
  --- AclProvider.java	19 Oct 2006 04:13:45 -0000	1.2
  +++ AclProvider.java	8 Nov 2006 23:28:38 -0000	1.3
  @@ -10,6 +10,8 @@
    */
   public interface AclProvider
   {
  +  public enum RecipientType {role, user};
  +
     /**
      * Return all Acls for the specified object.
      *
  
  
  
  1.4       +2 -22     jboss-seam/src/main/org/jboss/seam/security/acl/PersistentAclProvider.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: PersistentAclProvider.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/security/acl/PersistentAclProvider.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -b -r1.3 -r1.4
  --- PersistentAclProvider.java	8 Nov 2006 17:32:43 -0000	1.3
  +++ PersistentAclProvider.java	8 Nov 2006 23:28:38 -0000	1.4
  @@ -25,6 +25,7 @@
   import org.jboss.seam.security.Authentication;
   import org.jboss.seam.util.Naming;
   import org.jboss.seam.util.Transactions;
  +import org.jboss.seam.security.SeamSecurityManager;
   
   /**
    * Persistent Acl provider.
  @@ -144,7 +145,7 @@
         case managedPersistenceContext:
           ((Query) query).setParameter("recipient", principal.getName())
             .setParameter("roles", roles)
  -          .setParameter("identity", getObjectIdentity(target));
  +          .setParameter("identity", SeamSecurityManager.instance().getObjectIdentity(target));
           break;
         case managedHibernateSession:
           /** @todo implement */
  @@ -155,27 +156,6 @@
       }
     }
   
  -  protected Object getObjectIdentity(Object obj)
  -  {
  -    switch (persistenceType)
  -    {
  -      case managedPersistenceContext:
  -        try
  -        {
  -          return PersistenceProvider.instance().getId(obj,
  -              ( (ManagedPersistenceContext) pcm).getEntityManager());
  -        }
  -        catch (SystemException ex) {  /** @todo  */
  -        }
  -        catch (NamingException ex) { /** @todo  */
  -        }
  -
  -      /** @todo Implement hibernate and emf support */
  -    }
  -
  -    return null;
  -  }
  -
     protected Object executeQuery(Object query)
     {
       switch (persistenceType)
  
  
  
  1.1      date: 2006/11/08 23:28:38;  author: sbryzak2;  state: Exp;jboss-seam/src/main/org/jboss/seam/security/acl/DefaultIdentityGenerator.java
  
  Index: DefaultIdentityGenerator.java
  ===================================================================
  package org.jboss.seam.security.acl;
  
  import java.io.Serializable;
  import java.lang.reflect.Field;
  import java.lang.reflect.Method;
  import java.util.HashMap;
  import java.util.Map;
  
  /**
   *
   *
   * @author Shane Bryzak
   */
  public class DefaultIdentityGenerator implements IdentityGenerator
  {
    private enum IdentityMethod {field, method};
  
    private class IdentityMetadata {
      IdentityMethod idMethod;
  
      String name;
  
      Field identityField;
      Method identityMethod;
  
      public Serializable getIdentityValue(Object obj)
      {
        switch (idMethod)
        {
          case field:
            try
            {
              return (Serializable) identityField.get(obj);
            }
            catch (IllegalAccessException ex) { // shouldn't occur
            }
          case method:
          default: throw new IllegalStateException("Invalid identifier type");
        }
      }
    }
  
    private Map<Class,IdentityMetadata> identityMeta = new HashMap<Class,IdentityMetadata>();
  
    public String generateIdentity(Object obj)
    {
      IdentityMetadata meta = getIdentityMetadata(obj.getClass());
  
      meta.identityField.setAccessible(true);
      Object fieldVal = meta.getIdentityValue(obj);
      return String.format("%s:%s", meta.name, fieldVal.toString());
    }
  
    private IdentityMetadata getIdentityMetadata(Class cls)
    {
      if (!identityMeta.containsKey(cls))
      {
        synchronized(identityMeta)
        {
          if (!identityMeta.containsKey(cls))
          {
  
          }
        }
      }
  
      return identityMeta.get(cls);
    }
  }
  
  
  
  1.1      date: 2006/11/08 23:28:38;  author: sbryzak2;  state: Exp;jboss-seam/src/main/org/jboss/seam/security/acl/IdentityGenerator.java
  
  Index: IdentityGenerator.java
  ===================================================================
  package org.jboss.seam.security.acl;
  
  import java.io.Serializable;
  
  /**
   * Identity generator
   *
   * @author Shane Bryzak
   */
  public interface IdentityGenerator
  {
    String generateIdentity(Object obj);
  }
  
  
  



More information about the jboss-cvs-commits mailing list