X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=security%2Fimpl%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fsecurity%2Fauthorization%2FDefaultAuthorizationService.java;h=1e5abb99c0e28cf9cc95b67e7187f0215c98efd6;hb=74a6cd5b71b4f668ddac54c3237511ee11e8d84e;hp=048d66cc924ed2b27a0606ad5ba290f7e5c07339;hpb=a11c373e6ef35e7fe540c95a94903ed848800612;p=utils diff --git a/security/impl/src/main/java/org/wamblee/security/authorization/DefaultAuthorizationService.java b/security/impl/src/main/java/org/wamblee/security/authorization/DefaultAuthorizationService.java index 048d66cc..1e5abb99 100644 --- a/security/impl/src/main/java/org/wamblee/security/authorization/DefaultAuthorizationService.java +++ b/security/impl/src/main/java/org/wamblee/security/authorization/DefaultAuthorizationService.java @@ -12,17 +12,23 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - */ + */ 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.security.AbstractPersistent; import org.wamblee.usermgt.User; import org.wamblee.usermgt.UserAccessor; -import java.util.ArrayList; -import java.util.List; - /** * Default implementation of an authorization service. To determine whether * access to a resource is allowed, the service consults a number of @@ -33,23 +39,24 @@ import java.util.List; * * @author Erik Brakkee */ -public class DefaultAuthorizationService extends AbstractPersistent implements - AuthorizationService { +@Entity +@DiscriminatorValue("DEFAULT") +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 rules; /** * User accessor used to obtain the current user. */ + @Transient private UserAccessor userAccessor; - /** - * Name for this instance of the authorization service. - */ - private String name; - /** * Constructs the service. * @@ -59,9 +66,9 @@ public class DefaultAuthorizationService extends AbstractPersistent implements * Name of this instance of the service. */ public DefaultAuthorizationService(UserAccessor aAccessor, String aName) { + super(aName); rules = new ArrayList(); userAccessor = aAccessor; - name = aName; } /** @@ -70,7 +77,6 @@ public class DefaultAuthorizationService extends AbstractPersistent implements public DefaultAuthorizationService() { rules = new ArrayList(); userAccessor = null; - name = null; } /** @@ -79,6 +85,7 @@ public class DefaultAuthorizationService extends AbstractPersistent implements * @param aUserAccessor * User accessor. */ + @Override public void setUserAccessor(UserAccessor aUserAccessor) { userAccessor = aUserAccessor; } @@ -120,21 +127,13 @@ public class DefaultAuthorizationService extends AbstractPersistent implements return aResource; } - protected String getName() { - return name; - } - - public void setName(String aName) { - name = aName; - } - /* * (non-Javadoc) * * @see org.wamblee.security.authorization.AuthorizationService#getRules() */ public AuthorizationRule[] getRules() { - return rules.toArray(new AuthorizationRule[0]); + return rules.toArray(new AbstractAuthorizationRule[0]); } /*