hibernate->JPA for authorization rules.
[utils] / security / impl / src / main / java / org / wamblee / security / authorization / UrlAuthorizationRule.java
index 71fcac78faca8b1b4f4acaeeb7c10e002e4241f9..0ae744c464215ff0584e4da4a12683ef42751df1 100644 (file)
  */ 
 package org.wamblee.security.authorization;
 
+import javax.persistence.Access;
+import javax.persistence.AccessType;
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.DiscriminatorValue;
+import javax.persistence.Entity;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.Transient;
+
 import org.apache.log4j.Logger;
 
 import static org.wamblee.security.authorization.AuthorizationResult.DENIED;
@@ -44,8 +54,9 @@ import org.wamblee.usermgt.User;
  * the specified type, the result is UNSUPPORTED_RESOURCE, otherwise, the result
  * is UNDECIDED.
  */
-public abstract class UrlAuthorizationRule extends AbstractPersistent implements
-    AuthorizationRule {
+@Entity
+@Access(AccessType.PROPERTY)
+public abstract class UrlAuthorizationRule extends AuthorizationRule {
     private static final Logger LOGGER = Logger
         .getLogger(UrlAuthorizationRule.class);
 
@@ -134,6 +145,7 @@ public abstract class UrlAuthorizationRule extends AbstractPersistent implements
      * @see
      * org.wamblee.security.authorization.AuthorizationRule#getSupportedTypes()
      */
+    @Transient
     public Class[] getSupportedTypes() {
         return new Class[] { resourceClass };
     }
@@ -213,6 +225,7 @@ public abstract class UrlAuthorizationRule extends AbstractPersistent implements
      * 
      * @return Result.
      */
+    @Column(name = "AUTH_RESULT", nullable = false)
     protected String getAuthorizationResultString() {
         if (result == null) {
             return null;
@@ -231,6 +244,7 @@ public abstract class UrlAuthorizationRule extends AbstractPersistent implements
         result = AuthorizationResult.valueOf(aResult);
     }
 
+    @Column(name = "RES_CLASSNAME", nullable = false)
     protected String getResourceClassName() {
         if (resourceClass == null) {
             return "";
@@ -253,6 +267,8 @@ public abstract class UrlAuthorizationRule extends AbstractPersistent implements
      * 
      * @return Returns the operationCondition.
      */
+    @ManyToOne(cascade = CascadeType.ALL)
+    @JoinColumn(name = "OPER_COND_PK")
     public OperationCondition getOperationCondition() {
         return operationCondition;
     }
@@ -270,6 +286,8 @@ public abstract class UrlAuthorizationRule extends AbstractPersistent implements
      * 
      * @return Returns the pathCondition.
      */
+    @ManyToOne(cascade = CascadeType.ALL)
+    @JoinColumn(name = "PATH_COND_PK")
     public PathCondition getPathCondition() {
         return pathCondition;
     }
@@ -287,6 +305,8 @@ public abstract class UrlAuthorizationRule extends AbstractPersistent implements
      * 
      * @return Returns the userCondition.
      */
+    @ManyToOne(cascade = CascadeType.ALL)
+    @JoinColumn(name = "USER_COND_PK")
     public UserCondition getUserCondition() {
         return userCondition;
     }