You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by gp...@apache.org on 2014/06/11 18:15:16 UTC

git commit: DELTASPIKE-636 integration of AccessDeniedException with ExceptionToCatchEvent

Repository: deltaspike
Updated Branches:
  refs/heads/master b7a142d39 -> 241484f54


DELTASPIKE-636 integration of AccessDeniedException with ExceptionToCatchEvent


Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/241484f5
Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/241484f5
Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/241484f5

Branch: refs/heads/master
Commit: 241484f54ced11b26f269bfb5f3bc1eca6cf3d93
Parents: b7a142d
Author: gpetracek <gp...@apache.org>
Authored: Wed Jun 11 18:12:31 2014 +0200
Committer: gpetracek <gp...@apache.org>
Committed: Wed Jun 11 18:12:31 2014 +0200

----------------------------------------------------------------------
 .../deltaspike/security/impl/extension/Authorizer.java   | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltaspike/blob/241484f5/deltaspike/modules/security/impl/src/main/java/org/apache/deltaspike/security/impl/extension/Authorizer.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/security/impl/src/main/java/org/apache/deltaspike/security/impl/extension/Authorizer.java b/deltaspike/modules/security/impl/src/main/java/org/apache/deltaspike/security/impl/extension/Authorizer.java
index bf90867..b60e88d 100644
--- a/deltaspike/modules/security/impl/src/main/java/org/apache/deltaspike/security/impl/extension/Authorizer.java
+++ b/deltaspike/modules/security/impl/src/main/java/org/apache/deltaspike/security/impl/extension/Authorizer.java
@@ -36,6 +36,7 @@ import javax.enterprise.inject.spi.BeanManager;
 import javax.enterprise.util.Nonbinding;
 import javax.interceptor.InvocationContext;
 
+import org.apache.deltaspike.core.api.exception.control.event.ExceptionToCatchEvent;
 import org.apache.deltaspike.core.util.metadata.builder.InjectableMethod;
 import org.apache.deltaspike.security.api.authorization.AccessDeniedException;
 import org.apache.deltaspike.security.api.authorization.SecurityBindingType;
@@ -196,7 +197,15 @@ class Authorizer
                 }
             });
 
-            throw new AccessDeniedException(violations);
+            AccessDeniedException accessDeniedException = new AccessDeniedException(violations);
+            ExceptionToCatchEvent exceptionToCatchEvent = new ExceptionToCatchEvent(accessDeniedException);
+            exceptionToCatchEvent.setOptional(true);
+            beanManager.fireEvent(exceptionToCatchEvent);
+
+            if (!exceptionToCatchEvent.isHandled())
+            {
+                throw accessDeniedException;
+            }
         }
     }