Author: germuska Date: Thu Nov 30 16:16:41 2006 New Revision: 481115 URL: http://svn.apache.org/viewvc?view=rev&rev=481115 Log: Rethrown UnauthorizedActionException rather than dropping it and throwing a new one (STR-2981)
Modified: struts/struts1/trunk/core/src/main/java/org/apache/struts/chain/commands/AbstractAuthorizeAction.java Modified: struts/struts1/trunk/core/src/main/java/org/apache/struts/chain/commands/AbstractAuthorizeAction.java URL: http://svn.apache.org/viewvc/struts/struts1/trunk/core/src/main/java/org/apache/struts/chain/commands/AbstractAuthorizeAction.java?view=diff&rev=481115&r1=481114&r2=481115 ============================================================================== --- struts/struts1/trunk/core/src/main/java/org/apache/struts/chain/commands/AbstractAuthorizeAction.java (original) +++ struts/struts1/trunk/core/src/main/java/org/apache/struts/chain/commands/AbstractAuthorizeAction.java Thu Nov 30 16:16:41 2006 @@ -52,7 +52,8 @@ * @param actionCtx The <code>Context</code> for the current request * @return <code>false</code> if the user is authorized for the selected * action, else <code>true</code> to abort processing. - * @throws Exception if authorization fails + * @throws UnauthorizedActionException if authorization fails + * or if an error is encountered in the course of performing the authorization. */ public boolean execute(ActionContext actionCtx) throws Exception { @@ -70,6 +71,8 @@ throwEx = !(isAuthorized(actionCtx, actionConfig.getRoleNames(), actionConfig)); + } catch (UnauthorizedActionException ex) { + throw ex; } catch (Exception ex) { throwEx = true; LOG.error("Unable to complete authorization process", ex); @@ -109,6 +112,8 @@ * @param actionConfig The current action mapping * @return <code>true</code> if the request is authorized, else * <code>false</code> + * @throws UnauthorizedActionException If the logic determines that the request is not authorized + * but does not wish to rely upon the default mechanism reporting the error. * @throws Exception If the action cannot be tested for authorization */ protected abstract boolean isAuthorized(ActionContext context,