(no commit message)
authorErik Brakkee <erik@brakkee.org>
Fri, 30 Apr 2010 17:35:57 +0000 (17:35 +0000)
committerErik Brakkee <erik@brakkee.org>
Fri, 30 Apr 2010 17:35:57 +0000 (17:35 +0000)
security/impl/src/main/java/org/wamblee/security/authorization/AnyUserCondition.java
security/impl/src/main/java/org/wamblee/security/authorization/GroupUserCondition.java
security/impl/src/main/java/org/wamblee/security/authorization/IsaOperationCondition.java
security/impl/src/main/java/org/wamblee/security/authorization/OperationCondition.java
security/impl/src/main/java/org/wamblee/security/authorization/PathCondition.java
security/impl/src/main/java/org/wamblee/security/authorization/RegexpPathCondition.java
security/impl/src/main/java/org/wamblee/security/authorization/StartsWithPathCondition.java
security/impl/src/main/java/org/wamblee/security/authorization/UserCondition.java
security/jpatest/src/test/resources/META-INF/persistence.xml

index a9801cf05e2f4f41ab1d503c0687982ddc67240f..137d6dbdad7c594ea7c352baa565289f9411b145 100644 (file)
@@ -16,7 +16,9 @@
 package org.wamblee.security.authorization;
 
 
-import org.wamblee.security.AbstractPersistent;
+import javax.persistence.DiscriminatorValue;
+import javax.persistence.Entity;
+
 import org.wamblee.usermgt.User;
 
 /**
@@ -24,8 +26,9 @@ import org.wamblee.usermgt.User;
  * 
  * @author Erik Brakkee
  */
-public class AnyUserCondition extends AbstractPersistent implements
-    UserCondition {
+@Entity
+@DiscriminatorValue("ANYUSER")
+public class AnyUserCondition extends UserCondition {
     /**
      * Constructs the condition.
      * 
index c981e00f0648123246cad214335d0c8722377b8f..d4cde7f20caa49228c397ce3658b2d460c567c0f 100644 (file)
 package org.wamblee.security.authorization;
 
 
+import javax.persistence.Column;
+import javax.persistence.DiscriminatorValue;
+import javax.persistence.Entity;
+
 import org.wamblee.security.AbstractPersistent;
 import org.wamblee.usermgt.User;
 
@@ -24,11 +28,13 @@ import org.wamblee.usermgt.User;
  * 
  * @author Erik Brakkee
  */
-public class GroupUserCondition extends AbstractPersistent implements
-    UserCondition {
+@Entity
+@DiscriminatorValue("GROUP")
+public class GroupUserCondition extends UserCondition {
     /**
      * Group the user must be in.
      */
+    @Column(name = "GRP")
     private String group;
 
     /**
index 14a8a9de724c6cbc6978faeb2bb226eaf994671c..4e927437ffaf8877776cd1c800c6d540c43d34ed 100644 (file)
  */ 
 package org.wamblee.security.authorization;
 
+import javax.persistence.Access;
+import javax.persistence.AccessType;
+import javax.persistence.Column;
+import javax.persistence.DiscriminatorValue;
+import javax.persistence.Entity;
+
 import org.wamblee.security.AbstractPersistent;
 
 /**
  * Determiens if an operation is a subclass of a specified operation.
  */
-public class IsaOperationCondition extends AbstractPersistent implements
-    OperationCondition {
+@Entity
+@DiscriminatorValue("ISA")
+@Access(AccessType.PROPERTY)
+public class IsaOperationCondition extends OperationCondition {
     /**
      * Operation that the other operation must be a subclass of.
      */
@@ -61,6 +69,7 @@ public class IsaOperationCondition extends AbstractPersistent implements
      * 
      * @return Operation string.
      */
+    @Column(name = "CLASSNAME")
     protected String getOperationString() {
         if (operation == null) {
             return null;
index 916ab19ae87f73742a550050a3bcec662f2e771c..3e8f8fb48c01515271b478ea012e5f2da04bb38d 100644 (file)
  */ 
 package org.wamblee.security.authorization;
 
+import javax.persistence.DiscriminatorColumn;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Inheritance;
+import javax.persistence.InheritanceType;
+import javax.persistence.Table;
+import javax.persistence.Version;
+
 import org.wamblee.persistence.Persistent;
 
 /**
@@ -22,7 +32,28 @@ import org.wamblee.persistence.Persistent;
  * 
  * @author Erik Brakkee
  */
-public interface OperationCondition extends Persistent {
+@Entity
+@Table(name = "SEC_OPERATION_CONDITION")
+@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
+@DiscriminatorColumn(name = "TYPE")
+public abstract class OperationCondition {
+    
+    @Id
+    @GeneratedValue(strategy = GenerationType.AUTO)
+    private Long primaryKey;
+
+    @Version
+    private int version;
+    
+    public OperationCondition() { 
+        // Empty
+    }
+    
+    public OperationCondition(OperationCondition aCondition) { 
+        primaryKey = aCondition.primaryKey;
+        version = aCondition.version;
+    }
+    
     /**
      * Determines if the operation matches.
      * 
@@ -31,5 +62,5 @@ public interface OperationCondition extends Persistent {
      * 
      * @return True iff the operation matches.
      */
-    boolean matches(Operation aOperation);
+    public abstract boolean matches(Operation aOperation);
 }
index 4e03953f7803ac59b7c6769564bf7d7cdf2f2483..b1c6670a932dcdf4f51a1a79c8e4eab358db6c0d 100644 (file)
  */ 
 package org.wamblee.security.authorization;
 
+import javax.persistence.DiscriminatorColumn;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Inheritance;
+import javax.persistence.InheritanceType;
+import javax.persistence.Table;
+import javax.persistence.Version;
+
 import org.wamblee.persistence.Persistent;
 
 /**
@@ -22,7 +32,28 @@ import org.wamblee.persistence.Persistent;
  * 
  * @author Erik Brakkee
  */
-public interface PathCondition extends Persistent {
+@Entity
+@Table(name = "SEC_PATH_CONDITION")
+@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
+@DiscriminatorColumn(name = "TYPE")
+public abstract class PathCondition {
+    
+    @Id
+    @GeneratedValue(strategy = GenerationType.AUTO)
+    private Long primaryKey;
+
+    @Version
+    private int version;
+    
+    public PathCondition() { 
+        // Empty
+    }
+    
+    public PathCondition(PathCondition aCondition) { 
+        primaryKey = aCondition.primaryKey;
+        version = aCondition.version;
+    }
+    
     /**
      * Checks if the path matches the condition.
      * 
@@ -31,5 +62,5 @@ public interface PathCondition extends Persistent {
      * 
      * @return True iff the path matches.
      */
-    boolean matches(String aPath);
+    public abstract boolean matches(String aPath);
 }
index ca11c351e8ab5d4205937603fde1ae9c0628d93c..e1fa87d4aa2aca21ab5fe0fbced8e9d58ee3f189 100644 (file)
@@ -15,6 +15,9 @@
  */ 
 package org.wamblee.security.authorization;
 
+import javax.persistence.DiscriminatorValue;
+import javax.persistence.Entity;
+
 import org.wamblee.security.AbstractPersistent;
 
 /**
@@ -22,8 +25,9 @@ import org.wamblee.security.AbstractPersistent;
  * 
  * @author Erik Brakkee
  */
-public class RegexpPathCondition extends AbstractPersistent implements
-    PathCondition {
+@Entity
+@DiscriminatorValue("REGEXP")
+public class RegexpPathCondition extends PathCondition {
     /**
      * String the path must start with.
      */
index a6c68b4e725a7f5d66ce720eb9e3b6399b770931..9233d800340700f3dcd01c9a93b10e633cfa1073 100644 (file)
  */ 
 package org.wamblee.security.authorization;
 
+import javax.persistence.DiscriminatorValue;
+import javax.persistence.Entity;
+
 /**
  * Condition to check whether a path starts with a given string.
  * 
  * @author Erik Brakkee
  */
+@Entity
+@DiscriminatorValue("STARTSWITH")
 public class StartsWithPathCondition extends RegexpPathCondition {
     /**
      * Constructs the condition.
index 9f0963b7dc86b9d2762d74f190afab6fd3c436f5..293869b45edc00daaf26670a1f8f9016bdeb4fee 100644 (file)
  */ 
 package org.wamblee.security.authorization;
 
+import javax.persistence.DiscriminatorColumn;
+import javax.persistence.DiscriminatorType;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Inheritance;
+import javax.persistence.InheritanceType;
+import javax.persistence.Table;
+import javax.persistence.Version;
+
 import org.wamblee.persistence.Persistent;
 
 import org.wamblee.usermgt.User;
@@ -24,7 +35,28 @@ import org.wamblee.usermgt.User;
  * 
  * @author Erik Brakkee
  */
-public interface UserCondition extends Persistent {
+@Entity
+@Table(name = "SEC_USER_CONDITION")
+@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
+@DiscriminatorColumn(name = "TYPE")
+public abstract class UserCondition {
+    
+    @Id
+    @GeneratedValue(strategy = GenerationType.AUTO)
+    private Long primaryKey;
+
+    @Version
+    private int version;
+    
+    public UserCondition() { 
+        // Empty.
+    }
+    
+    public UserCondition(UserCondition aCondition) { 
+        primaryKey = aCondition.primaryKey;
+        version = aCondition.version;
+    }
+    
     /**
      * Determines if the condition matches.
      * 
@@ -33,5 +65,5 @@ public interface UserCondition extends Persistent {
      * 
      * @return True if the condition matches, false otherwise.
      */
-    boolean matches(User aUser);
+    public abstract boolean matches(User aUser);
 }
index 58704f7ed85e290bea2cd2ebbbd88bda4594cc15..f2d8ca1f9b49facc17944e1fe54ec5e226de16b9 100644 (file)
@@ -8,6 +8,14 @@
       
       <class>org.wamblee.usermgt.User</class>
       <class>org.wamblee.usermgt.Group</class>
+      <class>org.wamblee.security.authorization.UserCondition</class>
+      <class>org.wamblee.security.authorization.AnyUserCondition</class>
+      <class>org.wamblee.security.authorization.GroupUserCondition</class>
+      <class>org.wamblee.security.authorization.OperationCondition</class>
+      <class>org.wamblee.security.authorization.IsaOperationCondition</class>
+      <class>org.wamblee.security.authorization.PathCondition</class>
+      <class>org.wamblee.security.authorization.RegexpPathCondition</class>
+      <class>org.wamblee.security.authorization.StartsWithPathCondition</class>
       
       <exclude-unlisted-classes>true</exclude-unlisted-classes>