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

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

There is a newer version: 8.0.1
Show 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;

import java.io.IOException;
import java.io.ObjectStreamField;
import java.security.Permission;

/**
 * Class for EJB isCallerInRole (String reference)
 * permissions. An EJBRoleRefPermission is a named permission and has actions.
 * 

* The name of an EJBRoleRefPermission contains the value of the * ejb-name element in the application's deployment descriptor * that identifies the EJB in whose context the permission is * being evalutated. *

* the actions of an EJBRoleRefPermission identifies the role reference to * which the permission applies. An EJBRoleRefPermission is checked to * determine if the subject is a member of the role identified by the * reference. *

* Implementations of this class MAY implement newPermissionCollection or * inherit its implementation from the super class. * * @see java.security.Permission * * @author Ron Monzillo * @author Gary Ellison */ public final class EJBRoleRefPermission extends Permission { private final String actions; private transient int hashCodeValue = 0; private static final long serialVersionUID = 1L; /** * The serialized fields of this permission are defined below. Whether * or not the serialized fields correspond to actual (private) fields * is an implementation decision. * @serialField actions String * the canonicalized actions string (as returned by getActions). */ private static final ObjectStreamField[] serialPersistentFields = { new ObjectStreamField("actions", java.lang.String.class) }; /** * Creates a new EJBRoleRefPermission with the specified name and actions. * @param name the ejb-name that identifies the EJB * in whose context the role references are * to be evaluated. *

* @param actions identifies the role reference to which the permission * pertains. The role reference is scoped to the EJB identified * in the name parameter. The value of the role reference must not be * null or the empty string. */ public EJBRoleRefPermission(String name, String actions) { super(name); this.actions = actions; } /** * Checks two EJBRoleRefPermission objects for equality. * EJBRoleRefPermission objects are equivalent if they have case * equivalent name and actions values. *

* Two Permission objects, P1 and P2, are equivalent if and only if * P1.implies(P2) && P2.implies(P1). *

* @param o the EJBRoleRefPermission object being tested for equality * with this EJBRoleRefPermission. *

* @return true if the argument EJBRoleRefPermission object is equivalent * to this EJBRoleRefPermission. */ public boolean equals(Object o) { if (o == null || ! (o instanceof EJBRoleRefPermission)) return false; EJBRoleRefPermission that = (EJBRoleRefPermission) o; if (!this.getName().equals(that.getName())) return false; return this.actions.equals(that.actions); } /** * Returns a canonical String representation of the actions of this * EJBRoleRefPermission. *

* @return a String containing the canonicalized actions of this * EJBRoleRefPermission. */ public String getActions() { return this.actions; } /** * Returns the hash code value for this EJBRoleRefPermission. The properties * of the returned hash code must be as follows:

*

    *
  • During the lifetime of a Java application, the hashCode method * must return the same integer value, every time it is called on a * EJBRoleRefPermission object. The value returned by hashCode for a * particular EJBRoleRefPermission need not remain consistent from * one execution of an application to another. *
  • If two EJBRoleRefPermission objects are equal according to the * equals method, then calling the hashCode method on each of the two * Permission objects must produce the same integer result (within an * application). *
*

* @return the integer hash code value for this object. */ public int hashCode() { if (hashCodeValue == 0) { String hashInput = this.getName() + " " + this.actions; hashCodeValue = hashInput.hashCode(); } return this.hashCodeValue; } /** * Determines if the argument Permission is "implied by" this * EJBRoleRefPermission. For this to be the case,

* *

  • The argument must be an instanceof EJBRoleRefPermission *
  • with name equivalent to that of this EJBRoleRefPermission, and *
  • with the role reference equivalent to that of this * EJBRoleRefPermission applies. *

    * The name and actions comparisons described above are case sensitive. *

    * @param permission "this" EJBRoleRefPermission is checked to see if * it implies the argument permission. *

    * @return true if the specified permission is implied by this object, * false if not. */ public boolean implies(Permission permission) { return this.equals(permission); } // ----------------- Private Methods --------------------- /** * readObject reads the serialized fields from the * input stream and uses them to restore the permission. * This method need not be implemented if establishing the * values of the serialized fields (as is done by defaultReadObject) * is sufficient to initialize the permission. */ private void readObject(java.io.ObjectInputStream s) throws IOException,ClassNotFoundException { s.defaultReadObject(); } /** * writeObject is used to establish the values of the serialized fields * before they are written to the output stream and need not be * implemented if the values of the serialized fields are always * available and up to date. The serialized fields are written to * the output stream in the same form as they would be written * by defaultWriteObject. */ private synchronized void writeObject(java.io.ObjectOutputStream s) throws IOException { s.defaultWriteObject(); } }





  • © 2015 - 2024 Weber Informatics LLC | Privacy Policy