Table 5-1 lists the various Permission subclasses, the target and action names they support, and the methods that require those permissions (in Java 1.2 and later).
| Permission | Target, Action | Methods | 
|---|---|---|
| 
 AWT-Permission  | "accessClipboard" | 
 Toolkit.getSystemClipboard()  | 
| "accessEventQueue" | 
 Toolkit.getSystemEventQueue()  | 
|
| "listenToAllAWTEvents" | 
 Toolkit.{addAWTEventListener(), removeAWTEventListener()}  | 
|
| "readDisplayPixels" | 
 Graphics2D.setComposite()  | 
|
| 
 "showWindowWithout-WarningBanner"  | 
 Window.Window() (if permission is not granted, window has an "insecure" indication)  | 
|
| 
 File-Permission  | command, "execute" | 
 Runtime.exec()  | 
| filename, "delete" | 
 File.{delete(), deleteOnExit()}  | 
|
| 
 File-Permission  | filename, "read" | 
 FileInputStream.FileInputStream(), File.{exists(), canRead(), isFile(), isDirectory(), isHidden(), lastModified(), length(), list(), listFiles()}, RandomAccessFile.RandomAccessFile(), ZipFile.ZipFile()  | 
| filename, "write" | 
 FileOutputStream.FileOutputStream(), File.{canWrite(), createNewFile(), createTempFile(), mkdir(), mkdirs(), renameTo(), setLastModified(), setReadOnly()}, RandomAccessFile.RandomAccessFile()  | 
|
| 
 Net-Permission  | 
 "requestPassword-Authentication"  | 
 Authenticator.requestPassword-Authentication()  | 
| "setDefaultAuthenticator" | 
 Authenticator.setDefault()  | 
|
| "specifyStreamHandler" | 
 URL.URL()  | 
|
| 
 Property-Permission  | "*", "read, write" | 
 Beans.{setDesignTime(), setGuiAvailable()}, Introspector.setBeanInfo-SearchPath(), PropertyEditorManager.{register-Editor(), setEditorSearchPath()}, System.{getProperties(), setProperties()}  | 
| "user.language", "write" | 
 Locale.setDefault()  | 
|
| prop, "read" | 
 System.getProperty()  | 
|
| prop, "write" | 
 System.setProperty()  | 
|
| 
 Reflect-Permission  | "suppressAccessChecks" | 
 AccessibleObject.setAccessible()  | 
| 
 Runtime-Permission  | 
 "accessClassIn- Package.pkgname "  | 
 Class.{getClasses(), getDeclaredClasses(), getConstructor(), getConstructors(), getDeclaredFields(), getDeclaredMethods(), getDeclaredConstructors(), getDeclaredField(), getDeclaredMethod(), getDeclaredConstructor(),  | 
| 
 Runtime-Permission  | 
 getFields(), getMethods(), getField(), getMethod()}  | 
|
| 
 "accessDeclaredMembers"  | 
 Class.{getClasses(), getDeclaredClasses(), getDeclaredFields(), getDeclaredMethods(), getDeclaredConstructors(), getDeclaredField(), getDeclaredMethod(), getDeclaredConstructor()}  | 
|
| "createClassLoader" | 
 ClassLoader.Class-Loader(), URLClassLoader.URL-ClassLoader(), SecureClassLoader.Secure-ClassLoader()  | 
|
| "exitVM" | 
 Runtime.{exit(), runFinalizersOnExit()}, System.{exit(), runFinalizersOnExit()}  | 
|
| "getClassLoader" | 
 Class.{forName(), getClassLoader()}, ClassLoader.{getSystemClassLoader(), getParent()}, Thread.getContextClassLoader()  | 
|
| "getProtectionDomain" | 
 Class.getProtectionDomain()  | 
|
| "loadLibrary.libName " | 
 Runtime.{load(), loadLibrary()}, System.{load(), loadLibrary()}  | 
|
| "modifyThread" | 
 Thread.{checkAccess(), interrupt(), suspend(), resume(), setPriority(), setName(), setDaemon()}, ThreadGroup.{interrupt(), stop()}  | 
|
| "modifyThreadGroup" | 
 Thread.{Thread(), enumerate()}, ThreadGroup.{ThreadGroup(), enumerate(), getParent(), interrupt(), setDaemon(), setMaxPriority(), stop(), suspend(), resume(), destroy()}  | 
|
| "queuePrintJob" | 
 Toolkit.getPrintJob()  | 
|
| "readFileDescriptor" | 
 FileInputStream.File-InputStream(FileDescriptor)  | 
|
| "setContextClassLoader" | 
 Thread.setContextClassLoader()  | 
|
| 
 Runtime-Permission  | "setFactory" | 
 ServerSocket.setSocketFactory(), Socket.setSocketImplFactory(), URL.setURLStream-HandlerFactory(), URLConnection.{setContent-HandlerFactory(), setFileNameMap()}, HttpURLConnection.set-FollowRedirects(), activation.Activation-Group.{createGroup(), setSystem()}, server.RMISocketFactory.set-SocketFactory()  | 
| "setIO" | 
 System.{setIn(), setOut(), setErr()}  | 
|
| "setSecurityManager" | 
 System.setSecurityManager()  | 
|
| "stopThread" | 
 Thread.stop(), ThreadGroup.stop()  | 
|
| "writeFileDescriptor" | 
 FileOutputStream.File-OutputStream(FileDescriptor)  | 
|
| 
 Security-  | "addIdentityCertificate" | 
 Identity.addCertificate()  | 
| Permission | 
 "clearProvider- Properties.provider "  | 
 Provider.clear()  | 
| "getPolicy" | 
 Policy.getPolicy()  | 
|
| "getProperty.propname " | 
 Security.getProperty()  | 
|
| "getSignerPrivateKey" | 
 Signer.getPrivateKey()  | 
|
| "insertProvider.provider " | 
 Security.{addProvider(), insertProviderAt()}  | 
|
| "printIdentity" | 
 Identity.toString()  | 
|
| 
 "putProvider- Property.provider "  | 
 Provider.put()  | 
|
| "removeIdentityCertificate" | 
 Identity.removeCertificate()  | 
|
| 
 "removeProvider.provider "  | 
 Security.removeProvider()  | 
|
| 
 "removeProvider- Property.provider "  | 
 Provider.remove()  | 
|
| "setIdentityInfo" | 
 Identity.setInfo(String)  | 
|
| "setIdentityPublicKey" | 
 Identity.setPublicKey()  | 
|
| "setPolicy" | 
 Policy.setPolicy();  | 
|
| "setProperty.propname " | 
 Security.setProperty()  | 
|
| "setSignerKeypair" | 
 Signer.setKeyPair()  | 
|
| "setSystemScope" | 
 IdentityScope.setSystemScope()  | 
|
| 
 Serializable-Permission  | 
 "enableSubclass- Implementation"  | 
 ObjectInputStream.Object-InputStream(), ObjectOutputStream.Object-OutputStream()  | 
| "enableSubstitution" | 
 ObjectInputStream.enable-ResolveObject(), ObjectOutputStream.enable-ReplaceObject()  | 
|
| 
 Socket-Permission  | "localhost:port ", "listen" | 
 ServerSocket.ServerSocket(), DatagramSocket.DatagramSocket(), MulticastSocket.MulticastSocket()  | 
| host, "accept, connect" | 
 MulticastSocket.{joinGroup(), leaveGroup(), send()}  | 
|
| host, "resolve" | 
 InetAddress.{getHostName(), getAllByName(), getLocalHost()}, DatagramSocket.getLocalAddress()  | 
|
| host:port, "accept" | 
 DatagramSocket.receive(), ServerSocket.{accept(), implAccept()}  | 
|
| host:port, "connect" | 

Copyright © 2001 O'Reilly & Associates. All rights reserved.