1 /*
2  * Copyright (c) 1997, 2017, 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.lang.reflect;
27
28 /**
29  * The Permission class for reflective operations.
30  * <P>
31  * The following table
32  * provides a summary description of what the permission allows,
33  * and discusses the risks of granting code the permission.
34  *
35  * <table class="striped">
36  * <caption style="display:none">Table shows permission target name, what the permission allows, and associated risks</caption>
37  * <thead>
38  * <tr>
39  * <th scope="col">Permission Target Name</th>
40  * <th scope="col">What the Permission Allows</th>
41  * <th scope="col">Risks of Allowing this Permission</th>
42  * </tr>
43  * </thead>
44  * <tbody>
45  *
46  * <tr>
47  *   <th scope="row">suppressAccessChecks</th>
48  *   <td>ability to suppress the standard Java language access checks
49  *       on fields and methods in a class; allow access not only public members
50  *       but also allow access to default (package) access, protected,
51  *       and private members.</td>
52  *   <td>This is dangerous in that information (possibly confidential) and
53  *       methods normally unavailable would be accessible to malicious code.</td>
54  * </tr>
55  * <tr>
56  *   <th scope="row">newProxyInPackage.{package name}</th>
57  *   <td>ability to create a proxy instance in the specified package of which
58  *       the non-public interface that the proxy class implements.</td>
59  *   <td>This gives code access to classes in packages to which it normally
60  *       does not have access and the dynamic proxy class is in the system
61  *       protection domain. Malicious code may use these classes to
62  *       help in its attempt to compromise security in the system.</td>
63  * </tr>
64  *
65  * </tbody>
66  * </table>
67  *
68  * @see java.security.Permission
69  * @see java.security.BasicPermission
70  * @see AccessibleObject
71  * @see Field#get
72  * @see Field#set
73  * @see Method#invoke
74  * @see Constructor#newInstance
75  * @see Proxy#newProxyInstance
76  *
77  * @since 1.2
78  */

79 public final
80 class ReflectPermission extends java.security.BasicPermission {
81
82     private static final long serialVersionUID = 7412737110241507485L;
83
84     /**
85      * Constructs a ReflectPermission with the specified name.
86      *
87      * @param name the name of the ReflectPermission
88      *
89      * @throws NullPointerException if {@code name} is {@code null}.
90      * @throws IllegalArgumentException if {@code name} is empty.
91      */

92     public ReflectPermission(String name) {
93         super(name);
94     }
95
96     /**
97      * Constructs a ReflectPermission with the specified name and actions.
98      * The actions should be null; they are ignored.
99      *
100      * @param name the name of the ReflectPermission
101      *
102      * @param actions should be null
103      *
104      * @throws NullPointerException if {@code name} is {@code null}.
105      * @throws IllegalArgumentException if {@code name} is empty.
106      */

107     public ReflectPermission(String name, String actions) {
108         super(name, actions);
109     }
110
111 }
112