src/share/classes/java/sql/SQLPermission.java

Print this page


   1 /*
   2  * Copyright (c) 1999, 2012, 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 
  27 package java.sql;
  28 
  29 import java.security.*;
  30 
  31 /**
  32  * The permission for which the <code>SecurityManager</code> will check
  33  * when code that is running in an applet, or an application with a
  34  * <code>SecurityManager</code> enabled, calls the

  35  * <code>DriverManager.setLogWriter</code> method,
  36  * <code>DriverManager.setLogStream</code> (deprecated) method,
  37  * {@code SyncFactory.setJNDIContext} method,
  38  * {@code SyncFactory.setLogger} method,
  39  * {@code Connection.setNetworktimeout} method,
  40  * or the <code>Connection.abort</code> method.
  41  * If there is no <code>SQLPermission</code> object, these methods
  42  * throw a <code>java.lang.SecurityException</code> as a runtime exception.
  43  * <P>
  44  * A <code>SQLPermission</code> object contains
  45  * a name (also referred to as a "target name") but no actions
  46  * list; there is either a named permission or there is not.
  47  * The target name is the name of the permission (see below). The
  48  * naming convention follows the  hierarchical property naming convention.
  49  * In addition, an asterisk
  50  * may appear at the end of the name, following a ".", or by itself, to
  51  * signify a wildcard match. For example: <code>loadLibrary.*</code>
  52  * and <code>*</code> signify a wildcard match,
  53  * while <code>*loadLibrary</code> and <code>a*b</code> do not.
  54  * <P>


  78  *   <td>Permits an application to terminate a physical connection to a
  79  *  database.</td>
  80  * </tr>
  81  * <tr>
  82  * <td>setSyncFactory</td>
  83  *   <td>Allows the invocation of the {@code SyncFactory} methods
  84  *   {@code setJNDIContext} and {@code setLogger}</td>
  85  *   <td>Permits an application to specify the JNDI context from which the
  86  *   {@code SyncProvider} implementations can be retrieved from and the logging
  87  *   object to be used by the {@code SyncProvider} implementation.</td>
  88  * </tr>
  89  *
  90  * <tr>
  91  * <td>setNetworkTimeout</td>
  92  *   <td>Allows the invocation of the {@code Connection} method
  93  *   {@code setNetworkTimeout}</td>
  94  *   <td>Permits an application to specify the maximum period a
  95  * <code>Connection</code> or
  96  * objects created from the <code>Connection</code>
  97  * will wait for the database to reply to any one request.</td>







  98  * </tr>
  99  * </table>
 100  *<p>
 101  * The person running an applet decides what permissions to allow
 102  * and will run the <code>Policy Tool</code> to create an
 103  * <code>SQLPermission</code> in a policy file.  A programmer does
 104  * not use a constructor directly to create an instance of <code>SQLPermission</code>
 105  * but rather uses a tool.
 106  * @since 1.3
 107  * @see java.security.BasicPermission
 108  * @see java.security.Permission
 109  * @see java.security.Permissions
 110  * @see java.security.PermissionCollection
 111  * @see java.lang.SecurityManager
 112  *
 113  */
 114 
 115 public final class SQLPermission extends BasicPermission {
 116 
 117     /**
 118      * Creates a new <code>SQLPermission</code> object with the specified name.
 119      * The name is the symbolic name of the <code>SQLPermission</code>.
 120      *
 121      * @param name the name of this <code>SQLPermission</code> object, which must
 122      * be either {@code  setLog}, {@code callAbort}, {@code setSyncFactory},
 123      *  or {@code setNetworkTimeout}
 124      * @throws NullPointerException if <code>name</code> is <code>null</code>.
 125      * @throws IllegalArgumentException if <code>name</code> is empty.


   1 /*
   2  * Copyright (c) 1999, 2013, 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 
  27 package java.sql;
  28 
  29 import java.security.*;
  30 
  31 /**
  32  * The permission for which the <code>SecurityManager</code> will check
  33  * when code that is running an application with a
  34  * <code>SecurityManager</code> enabled, calls the
  35  * {@code DriverManager.deregisterDriver} method,
  36  * <code>DriverManager.setLogWriter</code> method,
  37  * <code>DriverManager.setLogStream</code> (deprecated) method,
  38  * {@code SyncFactory.setJNDIContext} method,
  39  * {@code SyncFactory.setLogger} method,
  40  * {@code Connection.setNetworktimeout} method,
  41  * or the <code>Connection.abort</code> method.
  42  * If there is no <code>SQLPermission</code> object, these methods
  43  * throw a <code>java.lang.SecurityException</code> as a runtime exception.
  44  * <P>
  45  * A <code>SQLPermission</code> object contains
  46  * a name (also referred to as a "target name") but no actions
  47  * list; there is either a named permission or there is not.
  48  * The target name is the name of the permission (see below). The
  49  * naming convention follows the  hierarchical property naming convention.
  50  * In addition, an asterisk
  51  * may appear at the end of the name, following a ".", or by itself, to
  52  * signify a wildcard match. For example: <code>loadLibrary.*</code>
  53  * and <code>*</code> signify a wildcard match,
  54  * while <code>*loadLibrary</code> and <code>a*b</code> do not.
  55  * <P>


  79  *   <td>Permits an application to terminate a physical connection to a
  80  *  database.</td>
  81  * </tr>
  82  * <tr>
  83  * <td>setSyncFactory</td>
  84  *   <td>Allows the invocation of the {@code SyncFactory} methods
  85  *   {@code setJNDIContext} and {@code setLogger}</td>
  86  *   <td>Permits an application to specify the JNDI context from which the
  87  *   {@code SyncProvider} implementations can be retrieved from and the logging
  88  *   object to be used by the {@code SyncProvider} implementation.</td>
  89  * </tr>
  90  *
  91  * <tr>
  92  * <td>setNetworkTimeout</td>
  93  *   <td>Allows the invocation of the {@code Connection} method
  94  *   {@code setNetworkTimeout}</td>
  95  *   <td>Permits an application to specify the maximum period a
  96  * <code>Connection</code> or
  97  * objects created from the <code>Connection</code>
  98  * will wait for the database to reply to any one request.</td>
  99  * <tr>
 100  * <td>deregisterDriver</td>
 101  *   <td>Allows the invocation of the {@code DriverManager}
 102  * method {@code deregisterDriver}</td>
 103  *   <td>Permits an application to remove a JDBC driver from the list of
 104  * registered Drivers and release its resources.</td>
 105  * </tr>
 106  * </tr>
 107  * </table>
 108  *<p>





 109  * @since 1.3
 110  * @see java.security.BasicPermission
 111  * @see java.security.Permission
 112  * @see java.security.Permissions
 113  * @see java.security.PermissionCollection
 114  * @see java.lang.SecurityManager
 115  *
 116  */
 117 
 118 public final class SQLPermission extends BasicPermission {
 119 
 120     /**
 121      * Creates a new <code>SQLPermission</code> object with the specified name.
 122      * The name is the symbolic name of the <code>SQLPermission</code>.
 123      *
 124      * @param name the name of this <code>SQLPermission</code> object, which must
 125      * be either {@code  setLog}, {@code callAbort}, {@code setSyncFactory},
 126      *  or {@code setNetworkTimeout}
 127      * @throws NullPointerException if <code>name</code> is <code>null</code>.
 128      * @throws IllegalArgumentException if <code>name</code> is empty.