3909N/A * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. 0N/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 0N/A * This code is free software; you can redistribute it and/or modify it 0N/A * under the terms of the GNU General Public License version 2 only, as 2362N/A * published by the Free Software Foundation. Oracle designates this 0N/A * particular file as subject to the "Classpath" exception as provided 2362N/A * by Oracle in the LICENSE file that accompanied this code. 0N/A * This code is distributed in the hope that it will be useful, but WITHOUT 0N/A * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 0N/A * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 0N/A * version 2 for more details (a copy is included in the LICENSE file that 0N/A * accompanied this code). 0N/A * You should have received a copy of the GNU General Public License version 0N/A * 2 along with this work; if not, write to the Free Software Foundation, 0N/A * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 2362N/A * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 2362N/A * or visit www.oracle.com if you need additional information or have any 0N/A * PolicyTool may be used by users and administrators to configure the 0N/A * overall java security policy (currently stored in the policy file). 3217N/A * Using PolicyTool administrators may add and remove policies from 0N/A * the policy file. <p> 0N/A * @see java.security.Policy 0N/A // this is for case insensitive string comparisons 0N/A // anyone can add warnings 0N/A // set to true if policy modified. 0N/A // this way upon exit we know if to ask the user to save changes 0N/A * All of the policy entries are read in from the 0N/A * policy file and stored here. Updates to the policy entries 0N/A * using addEntry() and removeEntry() are made here. To ultimately save 0N/A * the policy entries back to the policy file, the SavePolicy button 0N/A /* The public key alias information is stored here. */ 0N/A /* standard PKCS11 KeyStore type */ 0N/A /* reserved word for PKCS11 KeyStores */ 0N/A * default constructor 0N/A * get the PolicyFileName 0N/A * set the PolicyFileName 0N/A * clear keyStore info 0N/A * get the keyStore URL name 0N/A * get the keyStore Type 0N/A * get the keyStore Provider 0N/A * get the keyStore password URL 0N/A * Open and read a policy file 0N/A // start fresh - blow away the current state 0N/A // see if user is opening a NEW policy file 0N/A // Read in the policy entries from the file and 0N/A // populate the parser vector table. The parser vector 0N/A // table only holds the entries as strings, so it only 0N/A // guarantees that the policies are syntactically 0N/A // open the keystore 0N/A // Update the local vector with the same policy entries. 0N/A // This guarantees that the policy entries are not only 0N/A // syntactically correct, but semantically valid as well. 0N/A // see if all the signers have public keys 0N/A // check to see if the Principals are valid 3050N/A (
"Warning.Class.not.found.class"));
0N/A // check to see if the Permissions are valid 3050N/A (
"Warning.Class.not.found.class"));
3050N/A (
"Warning.Invalid.argument.s.for.constructor.arg"));
0N/A // see if all the permission signers have public keys 0N/A // just read in the policy -- nothing has been modified yet 0N/A * Save a policy to a file 0N/A // save the policy entries to a file 0N/A // policy did not specify a keystore during open 0N/A // or use wants to reset keystore values 0N/A // caller will set (tool.modified = true) if appropriate 0N/A // although PolicyUtil.getKeyStore may properly handle 0N/A // defaults and property expansion, we do it here so that 0N/A // if the call is successful, we can set the proper values 0N/A // (PolicyUtil.getKeyStore does not return expanded values) 0N/A // copied from sun.security.pkcs11.SunPKCS11 0N/A String MSG =
"no password provided, and no callback handler " +
0N/A "available for retrieving password";
0N/A // throw a more friendly exception message 0N/A // caller will set (tool.modified = true) 0N/A * Add a Grant entry to the overall policy at the specified index. 0N/A * A policy entry consists of a CodeSource. 0N/A // new entry -- just add it to the end 0N/A // existing entry -- replace old one 0N/A * Add a Principal entry to an existing PolicyEntry at the specified index. 0N/A * A Principal entry consists of a class, and name. 0N/A * If the principal already exists, it is not added again. 0N/A // first add the principal to the Policy Parser entry 0N/A * Add a Permission entry to an existing PolicyEntry at the specified index. 0N/A * A Permission entry consists of a permission, name, and actions. 0N/A * If the permission already exists, it is not added again. 0N/A // first add the permission to the Policy Parser Vector 0N/A * Remove a Permission entry from an existing PolicyEntry. 0N/A // remove the Permission from the GrantEntry 0N/A * remove an entry from the overall policy 0N/A * retrieve all Policy Entries 0N/A * Retrieve the public key mapped to a particular name. 0N/A * If the key has expired, a KeyException is thrown. 0N/A * Retrieve all the alias names stored in the certificate database 0N/A // first count the number of elements 0N/A // now copy them into an array 0N/A * This method parses a single string of signers separated by commas 0N/A * ("jordan, duke, pippen") into an array of individual strings. 0N/A // first pass thru "signedBy" counts the number of signers 0N/A // second pass thru "signedBy" transfers signers to array 0N/A // transfer signer and ignore trailing part of the string 0N/A // we are at the end of the string -- transfer signer 0N/A * Check to see if the Principal contents are OK 3050N/A (
"Illegal.Principal.Type.type"));
0N/A // PolicyParser checks validity of X500Principal name 0N/A // - PolicyTool needs to as well so that it doesn't store 0N/A // an invalid name that can't be read in later 0N/A // this can throw an IllegalArgumentException 0N/A * Check to see if the Permission contents are OK 0N/A //XXX we might want to keep a hash of created factories... 0N/A // proceed to the one-param constructor 0N/A // proceed to the two-param constructor 0N/A * Parse command line arguments. 3050N/A (
"Illegal.option.option"));
3050N/A (
".file.file.policy.file.location"));
0N/A * run the PolicyTool 0N/A // split instr to words according to capitalization, 0N/A // like, AWTControl -> A W T Control 0N/A // this method is for easy pronounciation 0N/A * Each entry in the policy configuration file is represented by a 0N/A * PolicyEntry object. 0N/A * A PolicyEntry is a (CodeSource,Permission) pair. The 0N/A * CodeSource contains the (URL, PublicKey) that together identify 0N/A * where the Java bytecodes come from and who (if anyone) signed 0N/A * them. The URL could refer to localhost. The URL could also be 0N/A * null, meaning that this policy entry is given to all comers, as 0N/A * long as they match the signer field. The signer could be null, 0N/A * meaning the code is not signed. 0N/A * The Permission contains the (Type, Name, Action) triplet. 0N/A * Create a PolicyEntry object from the information read in 0N/A * from a policy file. 0N/A // construct the CodeSource 0N/A * get the codesource associated with this PolicyEntry 0N/A * get the GrantEntry associated with this PolicyEntry 0N/A * convert the header portion, i.e. codebase, signer, principals, of 0N/A * this policy entry into a string 0N/A * convert the Principals portion of this policy entry into a string 0N/A * convert this policy entry into a PolicyParser.PermissionEntry 0N/A * The main window for the PolicyTool 0N/A // use serialVersionUID from JDK 1.2.2 for interoperability 0N/A /* external paddings */ 0N/A /* buttons and menus */ 0N/A /* gridbag index for components in the main window (MW) */ 0N/A * Initialize the PolicyTool window with the necessary components 0N/A // create the top menu bar 0N/A // create a File menu 0N/A // create a KeyStore menu 0N/A // policy entry listing 0N/A // open the policy file 0N/A // display the policy entries via the policy list textarea 0N/A // add blank policy listing 0N/A // add blank policy listing 0N/A // display the error 3050N/A (
"Could.not.open.policy.file.policyFile.e.toString."));
0N/A * Add a component to the PolicyTool window 0N/A // add the component at the specified gridbag index 0N/A // set the constraints 0N/A * Add a component to the PolicyTool window without external padding 0N/A // delegate with "null" external padding 0N/A * Init the policy_entry_list TEXTAREA component in the 0N/A // add the policy list to the window 0N/A * Replace the policy_entry_list TEXTAREA component in the 0N/A * PolicyTool window with an updated one. 0N/A // remove the original list of Policy Entries 0N/A // and add the new list of entries 0N/A * display the main PolicyTool window 0N/A * displays a dialog box describing an error which occurred. 0N/A // find where the PolicyTool gui is 0N/A * displays a dialog box describing an error which occurred. 0N/A * displays a dialog box describing the status of an event 0N/A // find the location of the PolicyTool gui 0N/A * display the warning log 0N/A // find the location of the PolicyTool gui 0N/A // StringBuffer to store button press. Must be final. 0N/A // I did encounter this once, don't why. 0N/A * General dialog window 0N/A // use serialVersionUID from JDK 1.2.2 for interoperability 0N/A /* necessary constants */ 0N/A public static final int NEW =
2;
0N/A "java.security.AllPermission";
0N/A "java.io.FilePermission";
0N/A "javax.security.auth.x500.X500Principal";
0N/A /* more popu menus */ 0N/A /* and more popup menus */ 0N/A /* gridbag index for display PolicyEntry (PE) components */ 0N/A /* the gridbag index for components in the Principal Dialog (PRD) */ 0N/A /* the gridbag index for components in the Permission Dialog (PD) */ 0N/A /* modes for KeyStore */ 0N/A /* the gridbag index for components in the Change KeyStore Dialog (KSD) */ 0N/A /* the gridbag index for components in the User Save Changes Dialog (USC) */ 0N/A /* gridbag index for the ConfirmRemovePolicyEntryDialog (CRPE) */ 0N/A /* some private static finals */ 0N/A // set up permission objects 0N/A // set up principal objects 0N/A * get the Perm instance based on either the (shortened) class name 0N/A * or the fully qualified class name 0N/A * get the Prin instance based on either the (shortened) class name 0N/A * or the fully qualified class name 0N/A * pop up a dialog so the user can enter info to add a new PolicyEntry 0N/A * - if edit is TRUE, then the user is editing an existing entry 0N/A * and we should display the original info as well. 0N/A * - the other reason we need the 'edit' boolean is we need to know 0N/A * when we are adding a NEW policy entry. in this case, we can 0N/A * not simply update the existing entry, because it doesn't exist. 0N/A * finally clicks 'OK' or 'DONE', then we can collect that info 0N/A * and add it to the policy. 0N/A // find where the PolicyTool gui is 0N/A // get the selected item 0N/A // get principal list 0N/A // get permission list 0N/A // codebase label and textfield 0N/A // signedby label and textfield 0N/A // panel for principal buttons 0N/A // principal label and list 0N/A // panel for permission buttons 0N/A // panel for Done and Cancel buttons 0N/A * Read all the Policy information data in the dialog box 0N/A * and construct a PolicyEntry object with it. 0N/A // construct a new GrantEntry 0N/A // get the new Principals 0N/A // get the new Permissions 0N/A // construct a new PolicyEntry object 0N/A * display a dialog box for the user to enter KeyStore information 0N/A // find where the PolicyTool gui is 0N/A // KeyStore label and textfield 0N/A // URL to U R L, so that accessibility reader will pronounce well 0N/A // KeyStore type and textfield 0N/A // KeyStore provider and textfield 0N/A // KeyStore password URL and textfield 3050N/A (
"KeyStore.Password.URL."));
0N/A * display a dialog box for the user to input Principal info 0N/A * if editPolicyEntry is false, then we are adding Principals to 0N/A * a new PolicyEntry, and we only update the GUI listing 0N/A * with the new Principal. 0N/A * if edit is true, then we are editing an existing Policy entry. 0N/A // get the Principal selected from the Principal List 0N/A // find where the PolicyTool gui is 0N/A // description label 0N/A // principal textfield 0N/A // name label and textfield 0N/A * display a dialog box for the user to input Permission info 0N/A * if editPolicyEntry is false, then we are adding Permissions to 0N/A * a new PolicyEntry, and we only update the GUI listing 0N/A * with the new Permission. 0N/A * if edit is true, then we are editing an existing Permission entry. 0N/A // get the Permission selected from the Permission List 0N/A // find where the PolicyTool gui is 0N/A // description label 0N/A // permission choice (added in alphabetical order) 0N/A // permission textfield 0N/A // name label and textfield 0N/A // actions label and textfield 0N/A // signedby label and textfield 0N/A * construct a Principal object from the Principal Info Dialog Box 0N/A // make this consistent with what PolicyParser does 0N/A // when it sees an empty principal class 0N/A "' specified without a Principal class.\n" +
0N/A "\t'" +
pname +
"' will be interpreted " +
0N/A "as a key store alias.\n" +
0N/A "\tThe final principal class will be " +
0N/A "\tThe final principal name will be " +
0N/A "determined by the following:\n" +
0N/A "\tIf the key store entry identified by '" 0N/A "\tis a key entry, then the principal name will be\n" +
0N/A "\tthe subject distinguished name from the first\n" +
0N/A "\tcertificate in the entry's certificate chain.\n" +
0N/A "\tIf the key store entry identified by '" +
0N/A "\tis a trusted certificate entry, then the\n" +
0N/A "\tprincipal name will be the subject distinguished\n" +
0N/A "\tname from the trusted public key certificate.");
0N/A "'" +
pname +
"' will be interpreted as a key " +
0N/A "store alias. View Warning Log for details.");
0N/A * construct a Permission object from the Permission Info Dialog Box 3050N/A (
"Permission.and.Target.Name.must.have.a.value"));
0N/A // When the permission is FilePermission, we need to check the name 0N/A // to make sure it's not escaped. We believe -- 0N/A // String name.lastIndexOf("\\\\") 0N/A // ---------------- ------------------------ 0N/A // c:\foo\bar -1, legal 0N/A // c:\\foo\\bar 2, illegal 0N/A // \\server\share 0, legal 0N/A // \\\\server\share 2, illegal 3050N/A "Warning.File.name.may.include.escaped.backslash.characters.It.is.not.necessary.to.escape.backslash.characters.the.tool.escapes"),
0N/A // an invisible exception 0N/A // get the Signed By 0N/A // see if the signers have public keys 0N/A * confirm that the user REALLY wants to remove the Policy Entry 0N/A // find the entry to be removed 0N/A // find where the PolicyTool gui is 0N/A // ask the user do they really want to do this? 0N/A // display the policy entry 0N/A 1,
3 + i,
1,
1,
0.0,
0.0,
0N/A 1,
3 + i,
1,
1,
0.0,
0.0,
0N/A 0,
0,
1,
1,
0.0,
0.0,
0N/A 1,
0,
1,
1,
0.0,
0.0,
0N/A // pop up a dialog box for the user to enter a filename. 0N/A // see if the user hit cancel 0N/A // get the entered filename 3217N/A // save the policy entries to a file 3217N/A (
"Policy.successfully.written.to.filename"));
3217N/A // display the new policy filename 3217N/A // now continue with the originally requested command 0N/A * ask user if they want to save changes 0N/A // find where the PolicyTool gui is 0N/A 0,
0,
1,
1,
0.0,
0.0,
0N/A 1,
0,
1,
1,
0.0,
0.0,
0N/A 2,
0,
1,
1,
0.0,
0.0,
0N/A // just do the original request (QUIT, NEW, or OPEN) 0N/A * when the user sees the 'YES', 'NO', 'CANCEL' buttons on the 0N/A * displayUserSave dialog, and the click on one of them, 0N/A * we need to continue the originally requested action 0N/A * (either QUITting, opening NEW policy file, or OPENing an existing 0N/A * policy file. do that now. 0N/A // now either QUIT, open a NEW policy file, or OPEN an existing policy 0N/A // display the policy entries via the policy list textarea 0N/A // display null policy filename and keystore 0N/A // pop up a dialog box for the user to enter a filename. 0N/A // see if the user hit 'cancel' 0N/A // get the entered filename 0N/A // open the policy file 0N/A // display the policy entries via the policy list textarea 0N/A // display the new policy filename 0N/A // inform user of warnings 0N/A // add blank policy listing 0N/A // display a null policy filename 0N/A // display the error 3050N/A (
"Could.not.open.policy.file.policyFile.e.toString."));
0N/A * Return a Menu list of names for a given permission 0N/A * If inputPerm's TARGETS are null, then this means TARGETS are 0N/A * not allowed to be entered (and the TextField is set to be 0N/A * If TARGETS are valid but there are no standard ones 0N/A * (user must enter them by hand) then the TARGETS array may be empty 0N/A * (and of course non-null). 0N/A // custom permission 0N/A // standard permission with no targets 0N/A // standard permission with standard targets 0N/A * Return a Menu list of actions for a given permission 0N/A * If inputPerm's ACTIONS are null, then this means ACTIONS are 0N/A * not allowed to be entered (and the TextField is set to be 0N/A * non-editable). This is typically true for BasicPermissions. 0N/A * If ACTIONS are valid but there are no standard ones 0N/A * (user must enter them by hand) then the ACTIONS array may be empty 0N/A * (and of course non-null). 0N/A // custom permission 0N/A // standard permission with no actions 0N/A // standard permission with standard actions 0N/A * Event handler for the PolicyTool window 0N/A // should we ask user if they want to save changes? 0N/A // (we do if they choose the Menu->Exit) 0N/A // seems that if they kill the application by hand, 0N/A // we don't have to ask. 0N/A * Event handler for the Policy List 0N/A // display the permission list for a policy entry 0N/A * Event handler for the File Menu 0N/A // ask user if they want to save changes 0N/A // the above method will perform the QUIT as long as the 0N/A // user does not CANCEL the request 0N/A // ask user if they want to save changes 0N/A // the above method will perform the NEW as long as the 0N/A // user does not CANCEL the request 0N/A // ask user if they want to save changes 0N/A // the above method will perform the OPEN as long as the 0N/A // user does not CANCEL the request 0N/A // get the previously entered filename 0N/A // if there is no filename, do a SAVE_AS 0N/A // user wants to SAVE AS 0N/A // save the policy entries to a file 3050N/A (
"Policy.successfully.written.to.filename"));
0N/A // user wants to SAVE AS 0N/A * Event handler for the main window buttons and Edit Menu 0N/A // display a dialog box for the user to enter policy info 0N/A // get the selected entry 0N/A // ask the user if they really want to remove the policy entry 0N/A // get the selected entry 0N/A // display the permission list for a policy entry 0N/A // display a dialog box for the user to enter keystore info 0N/A * Event handler for AddEntryDoneButton button 0N/A * -- if edit is TRUE, then we are EDITing an existing PolicyEntry 0N/A * and we need to update both the policy and the GUI listing. 0N/A * if edit is FALSE, then we are ADDing a new PolicyEntry, 0N/A * so we only need to update the GUI listing. 0N/A // get a PolicyEntry object from the dialog policy info 0N/A // see if all the signers have public keys 0N/A * Event handler for ChangeKeyStoreOKButton button 3050N/A (
"Unable.to.open.KeyStore.ex.toString."));
0N/A * Event handler for AddPrinButton button 0N/A // display a dialog box for the user to enter principal info 0N/A * Event handler for AddPermButton button 0N/A // display a dialog box for the user to enter permission info 0N/A * Event handler for AddPrinOKButton button 0N/A // read in the new principal info from Dialog Box 3050N/A (
"Warning.Class.not.found.class"));
0N/A // add the principal to the GUI principal list 0N/A // if editing, replace the original principal 0N/A // if adding, just add it to the end 0N/A * Event handler for AddPermOKButton button 0N/A // read in the new permission info from Dialog Box 3050N/A (
"Warning.Class.not.found.class"));
0N/A // add the permission to the GUI permission list 0N/A // if editing, replace the original permission 0N/A // if adding, just add it to the end 0N/A * Event handler for RemovePrinButton button 0N/A // get the Principal selected from the Principal List 0N/A // remove the principal from the display 0N/A * Event handler for RemovePermButton button 0N/A // get the Permission selected from the Permission List 0N/A // remove the permission from the display 0N/A * Event handler for Edit Principal button 0N/A * We need the editPolicyEntry boolean to tell us if the user is 0N/A * adding a new PolicyEntry at this time, or editing an existing entry. 0N/A * If the user is adding a new PolicyEntry, we ONLY update the 0N/A * GUI listing. If the user is editing an existing PolicyEntry, we 0N/A * update both the GUI listing and the actual PolicyEntry. 0N/A // get the Principal selected from the Principal List 0N/A * Event handler for Edit Permission button 0N/A * We need the editPolicyEntry boolean to tell us if the user is 0N/A * adding a new PolicyEntry at this time, or editing an existing entry. 0N/A * If the user is adding a new PolicyEntry, we ONLY update the 0N/A * GUI listing. If the user is editing an existing PolicyEntry, we 0N/A * update both the GUI listing and the actual PolicyEntry. 0N/A // get the Permission selected from the Permission List 0N/A * Event handler for Principal Popup Menu 0N/A // ignore if they choose "Principal Type:" item 0N/A // if you change the principal, clear the name 0N/A // set the text in the textfield and also modify the 0N/A // pull-down choice menus to reflect the correct possible 0N/A // set of names and actions 0N/A * Event handler for Permission Popup Menu 0N/A // ignore if they choose the 'Permission:' item 0N/A // if you change the permission, clear the name, actions, and signedBy 0N/A // set the text in the textfield and also modify the 0N/A // pull-down choice menus to reflect the correct possible 0N/A // set of names and actions 0N/A * Event handler for Permission Name Popup Menu 0N/A * Event handler for Permission Actions Popup Menu 0N/A // same as pressing the "cancel" button 0N/A * Event handler for CancelButton button 0N/A * Event handler for ErrorOKButton button 0N/A * Event handler for StatusOKButton button 0N/A * Event handler for UserSaveYes button 0N/A // first get rid of the window 0N/A // the above dialog will continue with the originally 0N/A // requested command if necessary 0N/A // save the policy entries to a file 3050N/A (
"Policy.successfully.written.to.filename"));
0N/A // now continue with the originally requested command 0N/A // (QUIT, NEW, or OPEN) 0N/A // error -- just report it and bail 0N/A * Event handler for UserSaveNoButton 0N/A // now continue with the originally requested command 0N/A // (QUIT, NEW, or OPEN) 0N/A * Event handler for UserSaveCancelButton 0N/A // do NOT continue with the originally requested command 0N/A // (QUIT, NEW, or OPEN) 0N/A * Event handler for ConfirmRemovePolicyEntryOKButtonListener 0N/A // redraw the window listing 0N/A * Just a special name, so that the codes dealing with this exception knows 0N/A * it's special, and does not pop out a warning box. 0N/A * This is a java.awt.List that bind an Object to each String it holds. 0N/A // Cannot throw AssertionError, because replaceItem() call remove() internally 0N/A * Convenience Principal Classes 0N/A super(
"KerberosPrincipal",
0N/A "javax.security.auth.kerberos.KerberosPrincipal");
0N/A super(
"X500Principal",
0N/A "javax.security.auth.x500.X500Principal");
0N/A * Convenience Permission Classes 0N/A super(
"AllPermission",
"java.security.AllPermission",
null,
null);
0N/A super(
"AudioPermission",
0N/A "javax.sound.sampled.AudioPermission",
0N/A super(
"AuthPermission",
0N/A "javax.security.auth.AuthPermission",
0N/A "getSubjectFromDomainCombiner",
0N/A "modifyPublicCredentials",
0N/A "modifyPrivateCredentials",
0N/A "refreshCredential",
0N/A "destroyCredential",
0N/A "getLoginConfiguration",
0N/A "setLoginConfiguration",
0N/A "createLoginConfiguration.<" +
0N/A "refreshLoginConfiguration" 0N/A super(
"AWTPermission",
0N/A "java.awt.AWTPermission",
0N/A "fullScreenExclusive",
0N/A "listenToAllAWTEvents",
0N/A "readDisplayPixels",
0N/A "replaceKeyboardFocusManager",
0N/A "setWindowAlwaysOnTop",
0N/A "showWindowWithoutWarningBanner",
0N/A super(
"DelegationPermission",
0N/A "javax.security.auth.kerberos.DelegationPermission",
0N/A super(
"FilePermission",
0N/A "java.io.FilePermission",
1535N/A super(
"InquireSecContextPermission",
1535N/A "com.sun.security.jgss.InquireSecContextPermission",
0N/A super(
"LoggingPermission",
0N/A "java.util.logging.LoggingPermission",
0N/A super(
"ManagementPermission",
0N/A "java.lang.management.ManagementPermission",
0N/A super(
"MBeanPermission",
0N/A "javax.management.MBeanPermission",
0N/A "addNotificationListener",
0N/A "getClassLoaderFor",
0N/A "getClassLoaderRepository",
0N/A "getObjectInstance",
0N/A "removeNotificationListener",
0N/A super(
"MBeanServerPermission",
0N/A "javax.management.MBeanServerPermission",
0N/A "createMBeanServer",
0N/A "releaseMBeanServer" 0N/A super(
"MBeanTrustPermission",
0N/A "javax.management.MBeanTrustPermission",
0N/A super(
"NetPermission",
0N/A "java.net.NetPermission",
0N/A "setDefaultAuthenticator",
0N/A "requestPasswordAuthentication",
0N/A "specifyStreamHandler",
0N/A super(
"PrivateCredentialPermission",
0N/A "javax.security.auth.PrivateCredentialPermission",
0N/A super(
"PropertyPermission",
0N/A "java.util.PropertyPermission",
0N/A super(
"ReflectPermission",
0N/A "java.lang.reflect.ReflectPermission",
0N/A "suppressAccessChecks" 0N/A super(
"RuntimePermission",
0N/A "java.lang.RuntimePermission",
0N/A "createClassLoader",
0N/A "setContextClassLoader",
0N/A "enableContextClassLoaderOverride",
0N/A "createSecurityManager",
0N/A "modifyThreadGroup",
0N/A "getProtectionDomain",
0N/A "readFileDescriptor",
0N/A "writeFileDescriptor",
0N/A "accessClassInPackage.<" +
0N/A "defineClassInPackage.<" +
0N/A "accessDeclaredMembers",
0N/A "setDefaultUncaughtExceptionHandler",
0N/A // "inheritedChannel" 0N/A super(
"SecurityPermission",
0N/A "java.security.SecurityPermission",
0N/A "createAccessControlContext",
0N/A "getDomainCombiner",
0N/A "insertProvider.<" +
0N/A "removeProvider.<" +
0N/A //"setIdentityPublicKey", 0N/A //"setIdentityInfo", 0N/A //"addIdentityCertificate", 0N/A //"removeIdentityCertificate", 0N/A "clearProviderProperties.<" +
0N/A "putProviderProperty.<" +
0N/A "removeProviderProperty.<" +
0N/A //"getSignerPrivateKey", 0N/A //"setSignerKeyPair" 0N/A super(
"SerializablePermission",
0N/A "java.io.SerializablePermission",
0N/A "enableSubclassImplementation",
0N/A "enableSubstitution" 0N/A super(
"ServicePermission",
0N/A "javax.security.auth.kerberos.ServicePermission",
0N/A super(
"SocketPermission",
0N/A "java.net.SocketPermission",
0N/A super(
"SQLPermission",
0N/A "java.sql.SQLPermission",
0N/A super(
"SSLPermission",
0N/A "javax.net.ssl.SSLPermission",
0N/A "setHostnameVerifier",
0N/A "getSSLSessionContext" 0N/A super(
"SubjectDelegationPermission",
0N/A "javax.management.remote.SubjectDelegationPermission",