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

javax.security.jacc.PolicyContextHandler Maven / Gradle / Ivy

The newest version!
/*
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
 *
 * Copyright (c) 1997-2013 Oracle and/or its affiliates. All rights reserved.
 *
 * The contents of this file are subject to the terms of either the GNU
 * General Public License Version 2 only ("GPL") or the Common Development
 * and Distribution License("CDDL") (collectively, the "License").  You
 * may not use this file except in compliance with the License.  You can
 * obtain a copy of the License at
 * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
 * or packager/legal/LICENSE.txt.  See the License for the specific
 * language governing permissions and limitations under the License.
 *
 * When distributing the software, include this License Header Notice in each
 * file and include the License file at packager/legal/LICENSE.txt.
 *
 * GPL Classpath Exception:
 * Oracle designates this particular file as subject to the "Classpath"
 * exception as provided by Oracle in the GPL Version 2 section of the License
 * file that accompanied this code.
 *
 * Modifications:
 * If applicable, add the following below the License Header, with the fields
 * enclosed by brackets [] replaced by your own identifying information:
 * "Portions Copyright [year] [name of copyright owner]"
 *
 * Contributor(s):
 * If you wish your version of this file to be governed by only the CDDL or
 * only the GPL Version 2, indicate your decision by adding "[Contributor]
 * elects to include this software in this distribution under the [CDDL or GPL
 * Version 2] license."  If you don't indicate a single choice of license, a
 * recipient has the option to distribute your version of this file under
 * either the CDDL, the GPL Version 2 or to extend the choice of license to
 * its licensees as provided above.  However, if you add GPL Version 2 code
 * and therefore, elected the GPL Version 2 license, then the option applies
 * only if the new code is made subject to such option by the copyright
 * holder.
 */

package javax.security.jacc;

/**
 * This interface defines the methods that must be implemented by handlers 
 * that are to be registered and activated by the PolicyContext
 * class. The PolicyContext class provides methods for containers
 * to register and activate container-specific PolicyContext
 * handlers. Policy providers use the PolicyContext
 * class to activate handlers to obtain (from the container) additional policy
 * relevant context to apply in their access decisions. All handlers
 * registered and activated via the PolicyContext class must
 * implement the PolicyContextHandler interface.
 *
 * @see javax.security.jacc.PolicyContext
 * @see javax.security.jacc.PolicyContextException
 *
 * @author Ron Monzillo
 * @author Gary Ellison
 */

public interface PolicyContextHandler {
	
    /** This public method returns a boolean result indicating whether or
     * not the handler supports the context object identified by the
     * (case-sensitive) key value.
     * @param key a String value identifying a context object
     * that could be supported by the handler. The value of this parameter
     * must not be null.
     * @return a boolean indicating whether or not the context object
     * corresponding to the argument key is handled by the handler.
     *
     * @throws javax.security.jacc.PolicyContextException
     * if the implementation throws a checked exception that has not been
     * accounted for by the method signature. The exception thrown
     * by the implementation class will be encapsulated (during construction)
     * in the thrown PolicyContextException
     */
    
    public boolean supports(String key)
	throws javax.security.jacc.PolicyContextException;

    /** This public method returns the keys identifying the context objects
     * supported by the handler. The value of each key supported by a handler
     * must be a non-null String value.
     * @return an array containing String values
     * identifing the context objects supported by the handler. The array
     * must not contain duplicate key values. In the
     * unlikely case that the Handler supports no keys, the handler must
     * return a zero length array. The value null must never be returned by
     * this method.
     *
     * @throws javax.security.jacc.PolicyContextException
     * if the implementation throws a checked exception that has not been
     * accounted for by the method signature. The exception thrown
     * by the implementation class will be encapsulated (during construction)
     * in the thrown PolicyContextException
     */

    public String[] getKeys()
	throws javax.security.jacc.PolicyContextException;

    /** This public method is used by the PolicyContext class to
     * activate the handler and obtain from it the context object
     * identified by the (case-sensitive) key. In addition to the key,
     * the handler will be activated with the handler data value associated
     * within the PolicyContext class
     * with the thread on which the call to this method is made.
     * 

* Note that the policy context identifier associated with a thread * is available to the handler by calling PolicyContext.getContextID(). *

* @param key a String that identifies the context object to be returned * by the handler. The value of this paramter must not be null. * @param data the handler data Object associated with the * thread on which the call to this method has been made. Note that * the value passed through this parameter may be null. * @return The container and handler specific Object * containing the desired context. A null value may * be returned if the value of the corresponding context is null. * * @throws javax.security.jacc.PolicyContextException * if the implementation throws a checked exception that has not been * accounted for by the method signature. The exception thrown * by the implementation class will be encapsulated (during construction) * in the thrown PolicyContextException */ public Object getContext(String key, Object data) throws javax.security.jacc.PolicyContextException; }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy