安全管理器是一个允许应用程序实现安全策略的类。它允许应用程序在执行一个可能不安全或敏感的操作前确定该操作是什么,以及是否是在允许执行该操作的安全上下文中执行它。应用程序可以允许或不允许该操作。
类包含了很多名称以单词 check
开头的方法。Java 库中的各种方法在执行某些潜在的敏感操作前可以调用这些方法。对 checkXXX
方法的典型调用如下:
SecurityManager security = System.getSecurityManager();
if (security != null) { security.checkXXX(argument,. . . ); }
SecurityException
。该约定的唯一例外是checkTopLevelWindow
,它返回 boolean
值。
System
类中的getSecurityManager
和 setSecurityManager
方法处理的。
checkPermission(java.security.Permission)
确定是应该允许还是拒绝由指定权限所指示的访问请求。默认的实现调用AccessController.checkPermission(perm);如果允许访问请求,则安静地返回 checkPermission
。如果拒绝访问请求,则抛出 SecurityException
。从 Java 2 SDK v1.2 开始,SecurityManager
中其他所有 check
方法的默认实现都是调用SecurityManager.checkPermission
方法来确定调用线程是否具有执行所请求操作的权限。
创建安全管理器步骤:
(1) 创建一个SecurityManager的子类;
(2) 覆盖或创建一些方法。
创建安全管理器
利用安全管理器