X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=security%2Fimpl%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fsecurity%2Fauthorization%2FAuthorizationRule.java;h=4e0f5641fe43b21b2f758421419b6aa78ba35926;hb=1d8237e4961e8653727f1210061b832ac82dda88;hp=d968c836476f787e414c8a3df243d9e037cfce99;hpb=bac5a4d56e975847a52e497bf2777c89b66aebfc;p=utils diff --git a/security/impl/src/main/java/org/wamblee/security/authorization/AuthorizationRule.java b/security/impl/src/main/java/org/wamblee/security/authorization/AuthorizationRule.java index d968c836..4e0f5641 100644 --- a/security/impl/src/main/java/org/wamblee/security/authorization/AuthorizationRule.java +++ b/security/impl/src/main/java/org/wamblee/security/authorization/AuthorizationRule.java @@ -15,6 +15,16 @@ */ 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; import org.wamblee.usermgt.User; @@ -25,14 +35,35 @@ import org.wamblee.usermgt.User; * * @author Erik Brakkee */ -public interface AuthorizationRule extends Persistent { +@Entity +@Table(name = "SEC_AUTH_RULE") +@Inheritance(strategy = InheritanceType.SINGLE_TABLE) +@DiscriminatorColumn(name = "TYPE") +public abstract class AuthorizationRule { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long primaryKey; + + @Version + private int version; + + public AuthorizationRule() { + // Empty + } + + public AuthorizationRule(AuthorizationRule aRule) { + primaryKey = aRule.primaryKey; + version = aRule.version; + } + /** * Returns the supported object types for which this authorization rule * applies. This can be used by the authorization service for optimization. * * @return Array of supported types. */ - Class[] getSupportedTypes(); + public abstract Class[] getSupportedTypes(); /** * Determines whether an operation is allowed on a certain resource. The @@ -49,6 +80,6 @@ public interface AuthorizationRule extends Persistent { * * @return Authorization result. */ - AuthorizationResult isAllowed(Object aResource, Operation aOperation, + public abstract AuthorizationResult isAllowed(Object aResource, Operation aOperation, User aUser); }