CVSROOT: /cvsroot/classpath Module name: classpath Changes by: Andrew John Hughes <gnu_andrew> 06/06/12 08:43:00
Modified files: . : ChangeLog Added files: java/lang/management: ManagementPermission.java Log message: 2006-06-12 Andrew John Hughes <[EMAIL PROTECTED]> * java/lang/management/ManagementPermission.java: New file. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/classpath/ChangeLog?cvsroot=classpath&r1=1.7776&r2=1.7777 http://cvs.savannah.gnu.org/viewcvs/classpath/java/lang/management/ManagementPermission.java?cvsroot=classpath&rev=1.1 Patches: Index: ChangeLog =================================================================== RCS file: /cvsroot/classpath/classpath/ChangeLog,v retrieving revision 1.7776 retrieving revision 1.7777 diff -u -b -r1.7776 -r1.7777 --- ChangeLog 12 Jun 2006 04:04:40 -0000 1.7776 +++ ChangeLog 12 Jun 2006 08:42:59 -0000 1.7777 @@ -1,3 +1,8 @@ +2006-06-12 Andrew John Hughes <[EMAIL PROTECTED]> + + * java/lang/management/ManagementPermission.java: + New file. + 2006-06-12 Raif S. Naffah <[EMAIL PROTECTED]> * doc/tools.texinfo: Replaced original author with "The GNU Classpath Team". Index: java/lang/management/ManagementPermission.java =================================================================== RCS file: java/lang/management/ManagementPermission.java diff -N java/lang/management/ManagementPermission.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ java/lang/management/ManagementPermission.java 12 Jun 2006 08:43:00 -0000 1.1 @@ -0,0 +1,127 @@ +/* ManagementPermission.java - Permissions for system management. + Copyright (C) 2006 Free Software Foundation + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + +package java.lang.management; + +import java.security.BasicPermission; + +/** + * <p> + * Represents the permission to view or modify the data + * which forms part of the system management interfaces. + * Calls to methods of the system management beans, + * provided by the [EMAIL PROTECTED] ManagementFactory}, may perform + * checks against the current [EMAIL PROTECTED] java.lang.SecurityManager} + * (if any) before allowing the operation to proceed. + * Instances of this object are supplied to the + * [EMAIL PROTECTED] java.lang.SecurityManager} in order to perform + * these checks. It is not normal for instances of this + * class to be created outside the use of the + * [EMAIL PROTECTED] java.lang.SecurityManager}. + * </p> + * <p> + * This object can represent two types of management + * permission: + * </p> + * <ul> + * <li><strong>monitor</strong> — this allows access + * to information such as the arguments supplied to the + * virtual machine, the currently loaded classes and the + * stack traces of running threads. Malicious code may + * use this to obtain information about the system and + * exploit any vulnerabilities found.</li> + * <li><strong>control</strong> — this allows the + * information stored by the management beans to be altered. + * For example, additional debugging information (such + * as class loading traces) may be turned on or memory + * usage limits changed. Malicious code could use + * this to alter the behaviour of the system.</li> + * </ul> + * + * @author Andrew John Hughes ([EMAIL PROTECTED]) + * @since 1.5 + */ +public class ManagementPermission + extends BasicPermission +{ + + /** + * Constructs a new <code>ManagementPermission</code> + * for one of the two permission targets, "monitor" + * and "control". + * + * @param name the name of the permission this instance + * should represent; either "monitor" or + * "control". + * @throws IllegalArgumentException if the name is not + * either "monitor" + * or "control". + */ + public ManagementPermission(String name) + { + super(name); + if (!(name.equals("monitor") || name.equals("control"))) + throw new IllegalArgumentException("Invalid permission."); + } + + /** + * Constructs a new <code>ManagementPermission</code> + * for one of the two permission targets, "monitor" + * and "control". Actions are not supported, so + * this value should be either <code>null</code> + * or the empty string. + * + * @param name the name of the permission this instance + * should represent; either "monitor" or + * "control". + * @param actions either <code>null</code> or the + * empty string. + * @throws IllegalArgumentException if the name is not + * either "monitor" + * or "control", or + * a value for actions + * is specified. + */ + public ManagementPermission(String name, String actions) + { + this(name); + if (!(actions == null || actions.equals(""))) + throw new IllegalArgumentException("Invalid actions."); + } + +} +