Home » openjdk-7 » java » io » [javadoc | source]

    1   /*
    2    * Copyright (c) 1997, 2005, Oracle and/or its affiliates. All rights reserved.
    3    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    4    *
    5    * This code is free software; you can redistribute it and/or modify it
    6    * under the terms of the GNU General Public License version 2 only, as
    7    * published by the Free Software Foundation.  Oracle designates this
    8    * particular file as subject to the "Classpath" exception as provided
    9    * by Oracle in the LICENSE file that accompanied this code.
   10    *
   11    * This code is distributed in the hope that it will be useful, but WITHOUT
   12    * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   13    * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   14    * version 2 for more details (a copy is included in the LICENSE file that
   15    * accompanied this code).
   16    *
   17    * You should have received a copy of the GNU General Public License version
   18    * 2 along with this work; if not, write to the Free Software Foundation,
   19    * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   20    *
   21    * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   22    * or visit www.oracle.com if you need additional information or have any
   23    * questions.
   24    */
   25   
   26   package java.io;
   27   
   28   import java.security;
   29   import java.util.Enumeration;
   30   import java.util.Hashtable;
   31   import java.util.StringTokenizer;
   32   
   33   /**
   34    * This class is for Serializable permissions. A SerializablePermission
   35    * contains a name (also referred to as a "target name") but
   36    * no actions list; you either have the named permission
   37    * or you don't.
   38    *
   39    * <P>
   40    * The target name is the name of the Serializable permission (see below).
   41    *
   42    * <P>
   43    * The following table lists all the possible SerializablePermission target names,
   44    * and for each provides a description of what the permission allows
   45    * and a discussion of the risks of granting code the permission.
   46    * <P>
   47    *
   48    * <table border=1 cellpadding=5 summary="Permission target name, what the permission allows, and associated risks">
   49    * <tr>
   50    * <th>Permission Target Name</th>
   51    * <th>What the Permission Allows</th>
   52    * <th>Risks of Allowing this Permission</th>
   53    * </tr>
   54    *
   55    * <tr>
   56    *   <td>enableSubclassImplementation</td>
   57    *   <td>Subclass implementation of ObjectOutputStream or ObjectInputStream
   58    * to override the default serialization or deserialization, respectively,
   59    * of objects</td>
   60    *   <td>Code can use this to serialize or
   61    * deserialize classes in a purposefully malfeasant manner. For example,
   62    * during serialization, malicious code can use this to
   63    * purposefully store confidential private field data in a way easily accessible
   64    * to attackers. Or, during deserialization it could, for example, deserialize
   65    * a class with all its private fields zeroed out.</td>
   66    * </tr>
   67    *
   68    * <tr>
   69    *   <td>enableSubstitution</td>
   70    *   <td>Substitution of one object for another during
   71    * serialization or deserialization</td>
   72    *   <td>This is dangerous because malicious code
   73    * can replace the actual object with one which has incorrect or
   74    * malignant data.</td>
   75    * </tr>
   76    *
   77    * </table>
   78    *
   79    * @see java.security.BasicPermission
   80    * @see java.security.Permission
   81    * @see java.security.Permissions
   82    * @see java.security.PermissionCollection
   83    * @see java.lang.SecurityManager
   84    *
   85    *
   86    * @author Joe Fialli
   87    * @since 1.2
   88    */
   89   
   90   /* code was borrowed originally from java.lang.RuntimePermission. */
   91   
   92   public final class SerializablePermission extends BasicPermission {
   93   
   94       private static final long serialVersionUID = 8537212141160296410L;
   95   
   96       /**
   97        * @serial
   98        */
   99       private String actions;
  100   
  101       /**
  102        * Creates a new SerializablePermission with the specified name.
  103        * The name is the symbolic name of the SerializablePermission, such as
  104        * "enableSubstitution", etc.
  105        *
  106        * @param name the name of the SerializablePermission.
  107        *
  108        * @throws NullPointerException if <code>name</code> is <code>null</code>.
  109        * @throws IllegalArgumentException if <code>name</code> is empty.
  110        */
  111       public SerializablePermission(String name)
  112       {
  113           super(name);
  114       }
  115   
  116       /**
  117        * Creates a new SerializablePermission object with the specified name.
  118        * The name is the symbolic name of the SerializablePermission, and the
  119        * actions String is currently unused and should be null.
  120        *
  121        * @param name the name of the SerializablePermission.
  122        * @param actions currently unused and must be set to null
  123        *
  124        * @throws NullPointerException if <code>name</code> is <code>null</code>.
  125        * @throws IllegalArgumentException if <code>name</code> is empty.
  126        */
  127   
  128       public SerializablePermission(String name, String actions)
  129       {
  130           super(name, actions);
  131       }
  132   }

Home » openjdk-7 » java » io » [javadoc | source]