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

Shane Bryzak Shane_Bryzak at symantec.com
Fri Feb 9 01:42:36 EST 2007


  User: sbryzak2
  Date: 07/02/09 01:42:36

  Added:       src/main/org/jboss/seam/security 
                        SecurityEntityListener.java
  Log:
  JBSEAM-732
  
  Revision  Changes    Path
  1.1      date: 2007/02/09 06:42:36;  author: sbryzak2;  state: Exp;jboss-seam/src/main/org/jboss/seam/security/SecurityEntityListener.java
  
  Index: SecurityEntityListener.java
  ===================================================================
  package org.jboss.seam.security;
  
  import javax.persistence.PrePersist;
  import javax.persistence.PreRemove;
  import javax.persistence.PreUpdate;
  
  import org.jboss.seam.Seam;
  import org.jboss.seam.contexts.Contexts;
  
  public class SecurityEntityListener
  {
     @PrePersist
     public void prePersist(Object entity)
     { 
        entitySecurityCheck(entity, "insert");
     }
     
     @PreUpdate
     public void preUpdate(Object entity)
     {
        entitySecurityCheck(entity, "update");
     }
     
     @PreRemove
     public void preRemove(Object entity)
     {
        entitySecurityCheck(entity, "delete");
     }
     
     protected void entitySecurityCheck(Object entity, String action)
     {
        String name = Seam.getComponentName(entity.getClass());
        if (name == null) name = entity.getClass().getName();
        
        Contexts.getMethodContext().set("entity", entity);
        String expr = String.format("#{s:hasPermission('%s', '%s', entity)}",
                 name, action);
        
        Identity.instance().checkRestriction(expr);
     }
  }
  
  
  



More information about the jboss-cvs-commits mailing list