(no commit message)
[utils] / security / impl / src / main / java / org / wamblee / security / authorization / AuthorizationService.java
index 13f4a105a085e9435f51f2688967c5daa2a1ab1e..349ef757c0076def4f8814333b18b3d6df8f7c16 100644 (file)
  * 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 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.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.persistence.Version;
-
 import org.wamblee.usermgt.UserAccessor;
 
 /**
@@ -34,36 +22,8 @@ import org.wamblee.usermgt.UserAccessor;
  * 
  * @author Erik Brakkee
  */
-@Entity
-@Table(name = "SEC_AUTH_SVC")
-@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
-@DiscriminatorColumn(name = "TYPE")
-@NamedQueries( 
-    @NamedQuery(name = AuthorizationService.QUERY_FIND_BY_NAME, 
-        query = "select s from AuthorizationService s where s.name = :" +
-        AuthorizationService.NAME_PARAM)
-        )
-public abstract class AuthorizationService {
-    public static final String QUERY_FIND_BY_NAME = "AuthorizationService.findByName";
-    public static final String NAME_PARAM = "name";
-    
-    @Id
-    @GeneratedValue(strategy = GenerationType.AUTO)
-    private Long primaryKey;
+public interface AuthorizationService {
 
-    @Version
-    private int version;
-    
-    public AuthorizationService() { 
-        // Empty. 
-    }
-    
-    public AuthorizationService(AuthorizationService aSvc) { 
-        primaryKey = aSvc.primaryKey;
-        version = aSvc.version;
-    }
-    
     /**
      * Checks whether an operation is allowed on a resource.
      * 
@@ -74,16 +34,29 @@ public abstract class AuthorizationService {
      * 
      * @return Checks whether the operation is allowed on a resource.
      */
-    public abstract boolean isAllowed(Object aResource, Operation aOperation);
+    boolean isAllowed(Object aResource, Operation aOperation);
 
-    public abstract <T> T check(T aResource, Operation aOperation);
+    /**
+     * Checks if the given operation is allowed on the resource.
+     * 
+     * @param <T>
+     *            Type of resource
+     * @param aResource
+     *            Resource.
+     * @param aOperation
+     *            Operation.
+     * @return Resource passed in in case access is allowed
+     * @throws AuthorizationException
+     *             In case access is denied.
+     */
+    <T> T check(T aResource, Operation aOperation);
 
     /**
      * Gets the authorization rules.
      * 
      * @return Rules.
      */
-    public abstract AuthorizationRule[] getRules();
+    AuthorizationRule[] getRules();
 
     /**
      * Appends a new authorization rule to the end.
@@ -91,7 +64,7 @@ public abstract class AuthorizationService {
      * @param aRule
      *            Rule to append.
      */
-    public abstract void appendRule(AuthorizationRule aRule);
+    void appendRule(AuthorizationRule aRule);
 
     /**
      * Removes a rule.
@@ -99,7 +72,7 @@ public abstract class AuthorizationService {
      * @param aIndex
      *            Index of the rule to remove.
      */
-    public abstract void removeRule(int aIndex);
+    void removeRule(int aIndex);
 
     /**
      * Inserts a rule.
@@ -109,12 +82,15 @@ public abstract class AuthorizationService {
      * @param aRule
      *            Rule to insert.
      */
-    public abstract void insertRuleAfter(int aIndex, AuthorizationRule aRule);
+    void insertRuleAfter(int aIndex, AuthorizationRule aRule);
 
     /**
-     * Sets the user accessor so that the authorization service can get access to the logged in 
-     * user. 
-     * @param aUserAccessor User accessor.
+     * Sets the user accessor so that the authorization service can get access
+     * to the logged in user.
+     * 
+     * @param aUserAccessor
+     *            User accessor.
      */
-    public abstract void setUserAccessor(UserAccessor aUserAccessor);
-}
+    void setUserAccessor(UserAccessor aUserAccessor);
+
+}
\ No newline at end of file