All Downloads are FREE. Search and download functionalities are using the official Maven repository.

openwfe.org.auth.Actions Maven / Gradle / Ivy

/*
 * Copyright (c) 2001-2006, John Mettraux, OpenWFE.org
 * All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without 
 * modification, are permitted provided that the following conditions are met:
 * 
 * . Redistributions of source code must retain the above copyright notice, this
 *   list of conditions and the following disclaimer.  
 * 
 * . Redistributions in binary form must reproduce the above copyright notice, 
 *   this list of conditions and the following disclaimer in the documentation 
 *   and/or other materials provided with the distribution.
 * 
 * . Neither the name of the "OpenWFE" nor the names of its contributors may be
 *   used to endorse or promote products derived from this software without
 *   specific prior written permission.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
 * POSSIBILITY OF SUCH DAMAGE.
 *
 * $Id: Actions.java 3090 2006-08-30 09:06:14Z jmettraux $
 */

//
// Actions.java
//
// [email protected]
//
// generated with 
// jtmpl 1.1.00 16.08.2003 John Mettraux ([email protected])
//

package openwfe.org.auth;

import java.security.PrivilegedActionException;
import javax.security.auth.Subject;

import openwfe.org.Service;
import openwfe.org.ApplicationContext;
import openwfe.org.actions.ServiceAction;
import openwfe.org.auth.actions.OwfeAction;


/*
 * OLD javadoc :
 *
 * This class, for the moment, holds a unique method that
 * executes the required action as a ServiceAction (openwfe.org.actions).
 * This ServiceAction class is part of the openwfe-service-actions.jar
 * which may be security controlled, thus the action may be 'impeached'.
 */

/**
 * This new method contains to executeAction() methods, one for executing
 * actions extending class ServiceAction and the other for actions
 * extending the OwfeAction class.
 *
 * 

CVS Info : *
$Author: jmettraux $ *
$Id: Actions.java 3090 2006-08-30 09:06:14Z jmettraux $
* * @author [email protected] */ public abstract class Actions { private final static org.apache.log4j.Logger log = org.apache.log4j.Logger .getLogger(Actions.class.getName()); /** * Making the unique constructor private to avoid extensions of this class. */ private Actions () { super(); } /** * Executes a ServiceAction. */ public static Object executeAction (final Subject subject, final Service service, final String methodName, Object[] args) throws java.rmi.RemoteException { final BasicPrincipal bp = BasicPrincipal.getBasicPrincipal(subject); if (bp != null && log.isDebugEnabled()) { log.debug ("executing action on behalf of '"+bp.getName()+"'"); } try { if (args == null) args = new Object[] { }; final ServiceAction action = new ServiceAction (service, methodName, args); return Subject.doAs(subject, action); } catch (final java.security.PrivilegedActionException pae) { if (log.isDebugEnabled()) { log.debug ("Failed to '"+methodName+"' on '"+service.getName()+"'", pae.getException()); } throw new java.rmi.RemoteException ("Failed to '"+methodName+"' on '"+service.getName()+"'", pae.getException()); } } /** * Executes an OwfeAction. */ public static Object executeAction (final ApplicationContext context, final Subject subject, final String actionClassName, Object[] args) throws Exception { if (args == null) args = new Object[] { }; final Class actionClass = Class.forName(actionClassName); final OwfeAction action = (OwfeAction)actionClass.newInstance(); action.init(context, subject, args); try { return Subject.doAs(subject, action); } catch (final java.security.PrivilegedActionException pae) { if (log.isDebugEnabled()) log.debug("executeAction() failure", pae.getException()); throw pae.getException(); } } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy