JavaTM 2 Platform
Standard Ed. 5.0

java.awt
类 AWTPermission

java.lang.Object
  继承者 java.security.Permission
      继承者 java.security.BasicPermission
          继承者 java.awt.AWTPermission
所有已实现的接口:
Serializable, Guard

public final class AWTPermission
extends BasicPermission

此类用于 AWT 权限。AWTPermission 包含一个目标名称,但是无操作列表;您可以有指定的权限,也可以没有。

目标名称是 AWT 权限的名称(参见下面内容)。命名约定遵守层次结构属性命名约定。另外,可以用星号来表示所有的 AWT 权限。

下表列出了所有可能的 AWTPermission 目标名称,并描述了每个名称允许何种权限,还讨论了授权代码权限的风险。

权限目标名称 权限允许的操作 允许权限所带来的风险
accessClipboard 向 AWT 剪贴板发送信息,以及获取来自 AWT 剪贴板的信息 这将允许非法代码共享潜在的敏感(或机密)信息。
accessEventQueue 访问 AWT 事件队列 检索 AWT 事件队列之后,恶意代码可能窥视甚至从其事件队列中移除现有的事件,也可能蓄意发出虚假事件,这些虚假事件可能以不安全的方式导致应用程序或 applet 行为异常。
createRobot 创建 java.awt.Robot 对象 java.awt.Robot 对象允许代码生成本机级别的鼠标和键盘事件,还允许读取屏幕内容。它可能允许恶意代码控制系统、运行其他程序、读取显示内容,以及拒绝用户访问鼠标和键盘。
fullScreenExclusive 进入全屏独占模式 进入全屏独占模式允许直接访问低层的显卡内存。这可能欺骗系统,因为程序直接控制了显示。
listenToAllAWTEvents 在系统范围内侦听所有 AWT 事件 添加 AWT 事件侦听器后,恶意代码可能扫描系统中指派的所有 AWT 事件,从而允许它读取所有用户输入(如密码)。每个 AWT 事件侦听器都是从该事件队列的 EventDispatchThread 的上下文中调用的,因此,如果同时启用了 accessEventQueue 权限,那么恶意代码就能在系统范围内修改 AWT 事件队列的上下文,从而以不安全的方式导致应用程序或 applet 行为异常。
readDisplayPixels 从显示器屏幕读回像素 接口(如 java.awt.Composite 接口)或 java.awt.Robot 类允许任意代码检查显示器上的像素,这使得恶意代码能窥探用户的活动。
replaceKeyboardFocusManager 设置特定线程的 KeyboardFocusManager当安装 SecurityManager 时,必须将此权限授权给调用线程,以便替代当前的 KeyboardFocusManager。如果没有授权,则抛出 SecurityException
showWindowWithoutWarningBanner 显示窗口,但不显示由 applet 创建窗口的标志警告 没有此警告,可能突然弹出 applet 窗口,而用户却不知道它们属于 applet。因为用户可以基于窗口是否属于 applet 做出安全敏感的决策(例如,在对话框中输入用户名和密码),所以禁用此警告标志可能允许 applet 欺骗用户去输入这些信息。
watchMousePointer 获得任意时间鼠标指针位置的信息 通过对鼠标指针的持续观察,applet 可以猜出用户正在做的事情,例如,将鼠标移动到屏幕的左下角很可能意味着用户将要启动某个应用程序。如果使用了虚拟键区,从而可以用鼠标模拟键盘,applet 可以猜出正在键入的文字。
setWindowAlwaysOnTop 设置窗口的“总在最上层 (always-on-top)”属性:Window.setAlwaysOnTop(boolean) 恶意窗口可能会伪装成一个真实完整的桌面,于是,对此毫不怀疑的用户输入的信息将会被捕获,随后被滥用。
setAppletStub 设置实现 Applet 容器服务的 stub 恶意代码可能设置 applet 的 stub,这将导致不可预料的行为或拒绝对 applet 服务。

另请参见:
BasicPermission, Permission, Permissions, PermissionCollection, SecurityManager, 序列化表格

构造方法摘要
AWTPermission(String name)
          用指定的名称创建一个新的 AWTPermission
AWTPermission(String name, String actions)
          用指定的名称创建一个新的 AWTPermission 对象。
 
方法摘要
 
从类 java.security.BasicPermission 继承的方法
equals, getActions, hashCode, implies, newPermissionCollection
 
从类 java.security.Permission 继承的方法
checkGuard, getName, toString
 
从类 java.lang.Object 继承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

AWTPermission

public AWTPermission(String name)
用指定的名称创建一个新的 AWTPermission。参数 name 是 AWTPermission 的符号名,如 "topLevelWindow"、"systemClipboard" 等等。可以使用星号来指示所有的 AWT 权限。

参数:
name - AWTPermission 的名称

AWTPermission

public AWTPermission(String name,
                     String actions)
用指定的名称创建一个新的 AWTPermission 对象。参数 name 是 AWTPermission 的符号名,actions 字符串目前未被使用,应该为 null

参数:
name - AWTPermission 的名称
actions - 应该为 null

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策