(no commit message)
[utils] / security / impl / src / main / java / org / wamblee / security / authorization / AuthorizationService.java
index 6bb5db27308af2e655ba06ed272fd40a4d0de1d7..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 org.wamblee.persistence.Persistent;
+import org.wamblee.usermgt.UserAccessor;
 
 /**
  * Service to determine if access to a certain resource is allowed.
  * 
  * @author Erik Brakkee
  */
-public interface AuthorizationService extends Persistent {
+public interface AuthorizationService {
+
     /**
      * Checks whether an operation is allowed on a resource.
      * 
@@ -35,6 +36,19 @@ public interface AuthorizationService extends Persistent {
      */
     boolean isAllowed(Object 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);
 
     /**
@@ -69,4 +83,14 @@ public interface AuthorizationService extends Persistent {
      *            Rule to insert.
      */
     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.
+     */
+    void setUserAccessor(UserAccessor aUserAccessor);
+
+}
\ No newline at end of file