类 java.rmi.RMISecurityManager
java.lang.Object
|
+----java.lang.SecurityManager
|
+----java.rmi.RMISecurityManager
- public class RMISecurityManager
- extends SecurityManager
此类定义了 RMI 应用程序的缺省安全策略(非 applets)。对类装入程序(class loader)装入的程序代码,安全管理器使除类定义和访问函数外的所有函数失效。 可用此类的子类实现不同的策略。 要设置一个 RMISecurityManager,必须在应用程序的方法 main() 中添加请求代码:
System.setSecurityManager(new RMISecurityManager()); 如果未设置安全性管理器, RMI 就只从 CLASSPATH 定义的本地系统文件中加载类。
构造子索引
- RMISecurityManager()
- 构造并初始化。
方法索引
- checkAccept(String, int)
- 目前加载的类还不能在任何端口接受连接。
- checkAccess(Thread)
- 不允许被加载的类操纵线程。
- checkAccess(ThreadGroup)
- 不允许被加载的类操纵线程组。
- checkAwtEventQueueAccess()
- 检查客户机是否能访问 AWT 事件队列(被加载的类不允许此操作)。
- checkConnect(String, int)
- 被加载的类可以建立连接,只要是由 RMI 传送的调用。
- checkConnect(String, int, Object)
- 被加载的类可以建立连接,只要是由 RMI 传送的调用。
- checkCreateClassLoader()
- 不允许被加载的类生成类装入程序,也不允许执行任何类装入方法。
- checkDelete(String)
- 检查文件名依赖于特定系统的文件能否被删除。
- checkExec(String)
- 不允许被加载的类创建新进程。
- checkExit(int)
- 不允许被加载的类退出 VM(虚拟机)。
- checkLink(String)
- 不允许被加载的类连接动态链接库。
- checkListen(int)
- 目前,已加载的类还不能在任何端口 listen。
- checkMemberAccess(Class, int)
- 检查客户机能否逆向访问指定类的成员或成员集。
- checkMulticast(InetAddress)
- 检查看当前执行上下文是否允许使用
(加入/离开/发送/接收) IP 广播(不允许被加载类使用)。
- checkMulticast(InetAddress, byte)
- 检查看当前执行上下文是否允许使用
(加入/离开/发送/接收) IP 广播(不允许被加载类使用)。
- checkPackageAccess(String)
- 检查被加载类能否存取信息包。
- checkPackageDefinition(String)
- 检查被加载类能否在程序包中定义类。
- checkPrintJobAccess()
- 取消被加载类的打印许可。
- checkPropertiesAccess()
- 不允许被加载的类访问系统属性表。
- checkPropertyAccess(String)
- 只有当被加载类的 twin key.rmi 属性被设置为 true 时,它才能访问名为 key 的系统属性。
- checkRead(FileDescriptor)
- 不允许被加载类打开描述程序(descriptor)进行读操作,除非是通过套接字(socket)实现的,在这种情况下,其它访问限制仍然生效。
- checkRead(String)
- 检查被加载类能否读取特定的文件。
- checkRead(String, Object)
- 文件读取操作对被加载类无效。
- checkSecurityAccess(String)
- 被加载类不能进行提供安全性(security provider)操作。
- checkSetFactory()
- 检查被加载类能否设置与网络相关的对象工厂。
- checkSystemClipboardAccess()
- 检查客户机是否能访问 System Clipboard(不允许被加载类进行此操作)。
- checkTopLevelWindow(Object)
- 允许调用者生成顶层窗口。
- checkWrite(FileDescriptor)
- 被加载类不允许打开描述程序(descriptor)进行写操作,除非是通过套接字(socket)实现的,在这种情况下,其它访问限制仍然生效。
- checkWrite(String)
- 检查被加载类能否写特定的文件。
- getSecurityContext()
- 返回安全性上下文(例如, 一个 URL)。
构造子
RMISecurityManager
public RMISecurityManager()
- 构造并初始化。
方法
getSecurityContext
public Object getSecurityContext()
- 返回安全性上下文(例如, 一个 URL)。
- 覆盖:
- getSecurityContext in class SecurityManager
checkCreateClassLoader
public synchronized void checkCreateClassLoader()
- 不允许被加载的类生成类装入程序,也不允许执行任何类装入方法。
- 覆盖:
- checkCreateClassLoader in class SecurityManager
checkAccess
public synchronized void checkAccess(Thread t)
- 不允许被加载的类操纵线程。
- 覆盖:
- checkAccess in class SecurityManager
checkAccess
public synchronized void checkAccess(ThreadGroup g)
- 不允许被加载的类操纵线程组。
- 覆盖:
- checkAccess in class SecurityManager
checkExit
public synchronized void checkExit(int status)
- 不允许被加载的类退出 VM(虚拟机)。
- 覆盖:
- checkExit in class SecurityManager
checkExec
public synchronized void checkExec(String cmd)
- 不允许被加载的类创建新进程。
- 覆盖:
- checkExec in class SecurityManager
checkLink
public synchronized void checkLink(String lib)
- 不允许被加载的类连接动态链接库。
- 覆盖:
- checkLink in class SecurityManager
checkPropertiesAccess
public synchronized void checkPropertiesAccess()
- 不允许被加载的类访问系统属性表。
- 覆盖:
- checkPropertiesAccess in class SecurityManager
checkPropertyAccess
public synchronized void checkPropertyAccess(String key)
- 只有当被加载类的 twin key.rmi 属性被设置为 true 时,它才能访问名为 key 的系统属性。
例如,只有
java.home.rmi 为 true 时,属性
java.home 才能被加载类读取。
- 覆盖:
- checkPropertyAccess in class SecurityManager
checkRead
public synchronized void checkRead(String file)
- 检查被加载类能否读取特定的文件。
- 覆盖:
- checkRead in class SecurityManager
checkRead
public void checkRead(String file,
Object context)
- 文件读取操作对被加载类无效。
- 抛出:
RMISecurityException
- 如果是被加载类呼叫。
- 覆盖:
- checkRead in class SecurityManager
checkWrite
public synchronized void checkWrite(String file)
- 检查被加载类能否写特定的文件。
- 抛出:
RMISecurityException
- 如果是被加载类呼叫。
- 覆盖:
- checkWrite in class SecurityManager
checkDelete
public void checkDelete(String file)
- 检查文件名依赖于特定系统的文件能否被删除。
- 参数:
- file - 依赖于系统的文件名。
- 抛出:
RMISecurityException
- 如果不能找到此文件。
- 覆盖:
- checkDelete in class SecurityManager
checkRead
public synchronized void checkRead(FileDescriptor fd)
- 不允许被加载类打开描述程序(descriptor) 进行读操作,除非是通过套接字(socket)实现的,在这种情况下,其它访问限制仍然生效。
- 覆盖:
- checkRead in class SecurityManager
checkWrite
public synchronized void checkWrite(FileDescriptor fd)
- 不允许被加载类打开描述程序(descriptor)进行写操作,除非是通过套接字实现的,在这种情况下,其它访问限制仍然生效。
- 覆盖:
- checkWrite in class SecurityManager
checkListen
public synchronized void checkListen(int port)
- 目前,已加载的类还不能在任何端口监听。
- 覆盖:
- checkListen in class SecurityManager
checkAccept
public synchronized void checkAccept(String host,
int port)
- 到目前,已加载的类还不能在任何端口接受连接。
- 覆盖:
- checkAccept in class SecurityManager
checkMulticast
public void checkMulticast(InetAddress maddr)
- 检查看当前执行上下文是否允许使用
(加入/离开/发送/接收) IP 广播(不允许被加载类使用)。
- 覆盖:
- checkMulticast in class SecurityManager
checkMulticast
public void checkMulticast(InetAddress maddr,
byte ttl)
- 检查看当前执行上下文是否允许使用
(加入/离开/发送/接收) IP 广播(不允许被加载类使用)。
- 覆盖:
- checkMulticast in class SecurityManager
checkConnect
public synchronized void checkConnect(String host,
int port)
- 被加载的类可以建立连接,只要是由 RMI 传送呼叫。
- 覆盖:
- checkConnect in class SecurityManager
checkConnect
public void checkConnect(String host,
int port,
Object context)
- 被加载的类可以建立连接,只要是由 RMI 传送呼叫。
- 覆盖:
- checkConnect in class SecurityManager
checkTopLevelWindow
public synchronized boolean checkTopLevelWindow(Object window)
- 允许调用者生成顶层窗口。允许被加载的类生成带警告的窗口。
- 覆盖:
- checkTopLevelWindow in class SecurityManager
checkPackageAccess
public synchronized void checkPackageAccess(String pkg)
- 检查被加载类能否存取信息包。
- 覆盖:
- checkPackageAccess in class SecurityManager
checkPackageDefinition
public synchronized void checkPackageDefinition(String pkg)
- 检查被加载类能否在程序包中定义类。
- 覆盖:
- checkPackageDefinition in class SecurityManager
checkSetFactory
public synchronized void checkSetFactory()
- 检查被加载类能否设置与网络相关的对象工厂。
- 覆盖:
- checkSetFactory in class SecurityManager
checkPrintJobAccess
public void checkPrintJobAccess()
- 取消被加载类的打印许可。
- 覆盖:
- checkPrintJobAccess in class SecurityManager
checkSystemClipboardAccess
public void checkSystemClipboardAccess()
- 检查客户机是否能访问 System Clipboard(不允许被加载类进行此操作)。
- 覆盖:
- checkSystemClipboardAccess in class SecurityManager
checkAwtEventQueueAccess
public void checkAwtEventQueueAccess()
- 检查客户机是否能访问 AWT 事件队列(被加载的类不允许此操作).
- 覆盖:
- checkAwtEventQueueAccess in class SecurityManager
checkMemberAccess
public void checkMemberAccess(Class clazz,
int which)
- 检查客户机能否逆向访问指定类的成员或成员集。一旦授与了初始访问权,则可以查询映射(reflected)成员以获取得标识信息,但只能通过标准 Java 语言存取控制函数 查询 (通过 get,
set, invoke, 或 newInstance)。
该策略是削减 untrusted 客户机对类的
declared 成员的存取权限,而不影响使用相同类装入程序的其它客户机。所有其它访问都得到许可。
- 覆盖:
- checkMemberAccess in class SecurityManager
checkSecurityAccess
public void checkSecurityAccess(String provider)
- 被加载类不能进行提供安全性(security provider)操作。
- 覆盖:
- checkSecurityAccess in class SecurityManager