(no commit message)
[utils] / security / impl / src / main / java / org / wamblee / security / authorization / DefaultAuthorizationService.java
index a086ab477844e3b0cec84900a4138b9446d9f4bf..8ee411780d9fb0726776e14b2246999600f58701 100644 (file)
@@ -18,8 +18,13 @@ package org.wamblee.security.authorization;
 import java.util.ArrayList;
 import java.util.List;
 
+import javax.persistence.CascadeType;
 import javax.persistence.DiscriminatorValue;
 import javax.persistence.Entity;
+import javax.persistence.ManyToMany;
+import javax.persistence.OneToMany;
+import javax.persistence.OrderColumn;
+import javax.persistence.Transient;
 
 import org.wamblee.usermgt.User;
 import org.wamblee.usermgt.UserAccessor;
@@ -36,17 +41,20 @@ import org.wamblee.usermgt.UserAccessor;
  */
 @Entity
 @DiscriminatorValue("DEFAULT")
-public class DefaultAuthorizationService extends AuthorizationService {
+public class DefaultAuthorizationService extends AbstractAuthorizationService {
     
     
     /**
      * List of ordered authorization rules.
      */
+    @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, targetEntity = AbstractAuthorizationRule.class)
+    @OrderColumn(name = "RULE_INDEX")
     private List<AuthorizationRule> rules;
 
     /**
      * User accessor used to obtain the current user.
      */
+    @Transient
     private UserAccessor userAccessor;
 
     /**
@@ -139,7 +147,7 @@ public class DefaultAuthorizationService extends AuthorizationService {
      * @see org.wamblee.security.authorization.AuthorizationService#getRules()
      */
     public AuthorizationRule[] getRules() {
-        return rules.toArray(new AuthorizationRule[0]);
+        return rules.toArray(new AbstractAuthorizationRule[0]);
     }
 
     /*