|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*/ |
|
|
|
package java.lang.management; |
|
|
|
/** |
|
* The permission which the SecurityManager will check when code |
|
* that is running with a SecurityManager calls methods defined |
|
* in the management interface for the Java platform. |
|
* <P> |
|
* The following table |
|
* provides a summary description of what the permission allows, |
|
* and discusses the risks of granting code the permission. |
|
* |
|
* <table border=1 cellpadding=5 summary="Table shows permission target name, what the permission allows, and associated risks"> |
|
* <tr> |
|
* <th>Permission Target Name</th> |
|
* <th>What the Permission Allows</th> |
|
* <th>Risks of Allowing this Permission</th> |
|
* </tr> |
|
* |
|
* <tr> |
|
* <td>control</td> |
|
* <td>Ability to control the runtime characteristics of the Java virtual |
|
* machine, for example, enabling and disabling the verbose output for |
|
* the class loading or memory system, setting the threshold of a memory |
|
* pool, and enabling and disabling the thread contention monitoring |
|
* support. Some actions controlled by this permission can disclose |
|
* information about the running application, like the -verbose:class |
|
* flag. |
|
* </td> |
|
* <td>This allows an attacker to control the runtime characteristics |
|
* of the Java virtual machine and cause the system to misbehave. An |
|
* attacker can also access some information related to the running |
|
* application. |
|
* </td> |
|
* </tr> |
|
* <tr> |
|
* <td>monitor</td> |
|
* <td>Ability to retrieve runtime information about |
|
* the Java virtual machine such as thread |
|
* stack trace, a list of all loaded class names, and input arguments |
|
* to the Java virtual machine.</td> |
|
* <td>This allows malicious code to monitor runtime information and |
|
* uncover vulnerabilities.</td> |
|
* </tr> |
|
* |
|
* </table> |
|
* |
|
* <p> |
|
* Programmers do not normally create ManagementPermission objects directly. |
|
* Instead they are created by the security policy code based on reading |
|
* the security policy file. |
|
* |
|
* @author Mandy Chung |
|
* @since 1.5 |
|
* |
|
* @see java.security.BasicPermission |
|
* @see java.security.Permission |
|
* @see java.security.Permissions |
|
* @see java.security.PermissionCollection |
|
* @see java.lang.SecurityManager |
|
* |
|
*/ |
|
|
|
public final class ManagementPermission extends java.security.BasicPermission { |
|
private static final long serialVersionUID = 1897496590799378737L; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*/ |
|
public ManagementPermission(String name) { |
|
super(name); |
|
if (!name.equals("control") && !name.equals("monitor")) { |
|
throw new IllegalArgumentException("name: " + name); |
|
} |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*/ |
|
public ManagementPermission(String name, String actions) |
|
throws IllegalArgumentException { |
|
super(name); |
|
if (!name.equals("control") && !name.equals("monitor")) { |
|
throw new IllegalArgumentException("name: " + name); |
|
} |
|
if (actions != null && actions.length() > 0) { |
|
throw new IllegalArgumentException("actions: " + actions); |
|
} |
|
} |
|
} |