securitymanager.html
来自「j2se5-api-zh,java文档的中文版本」· HTML 代码 · 共 1,114 行 · 第 1/5 页
HTML
1,114 行
<FONT SIZE="-1"><A HREF="Deprecated.html" title="java.lang 中的注释">@Deprecated</A></FONT>protected <A HREF="ClassLoader.html" title="java.lang 中的类">ClassLoader</A> <B>currentClassLoader</B>()</PRE><DL><DD><B>已过时。</B> <I>建议不使用该类安全检查。建议使用 <code>checkPermission</code> 调用。</I><P><DD>返回最近执行的、使用非系统类加载器定义的类方法的类加载器。非系统类加载器被定义为一种不同于系统类加载器(由 <A HREF="ClassLoader.html#getSystemClassLoader()"><CODE>ClassLoader.getSystemClassLoader()</CODE></A> 返回)或其祖先之一的类加载器。 <p>在以下三种情况中,此方法将返回 <code>null</code>:<p> <ol><li>执行堆栈中的所有方法都来自于使用系统类加载器或其祖先之一所定义的类。<li>在执行堆栈中,直到第一个“特权”调用方(参见 <CODE>AccessController.doPrivileged(java.security.PrivilegedAction<T>)</CODE>)为止的所有方法都来自于使用系统类加载器或其祖先之一所定义的类。<li> 使用 <code>java.security.AllPermission</code> 调用 <code>checkPermission</code> 不会导致 SecurityException。 </ol><P><DD><DL><DT><B>返回:</B><DD>最近执行的、使用非系统类加载器定义的类方法堆栈中的类加载器。<DT><B>另请参见:</B><DD><A HREF="ClassLoader.html#getSystemClassLoader()"><CODE>getSystemClassLoader</CODE></A>, <A HREF="SecurityManager.html#checkPermission(java.security.Permission)"><CODE>checkPermission</CODE></A></DL></DD></DL><HR><A NAME="currentLoadedClass()"><!-- --></A><H3>currentLoadedClass</H3><PRE><FONT SIZE="-1"><A HREF="Deprecated.html" title="java.lang 中的注释">@Deprecated</A></FONT>protected <A HREF="Class.html" title="java.lang 中的类">Class</A><?> <B>currentLoadedClass</B>()</PRE><DL><DD><B>已过时。</B> <I>建议不使用该类安全检查。建议使用 <code>checkPermission</code> 调用。</I><P><DD>返回最近执行的、使用非系统类加载器定义的类方法的类。非系统类加载器被定义为一种不同于系统类加载器(由 <A HREF="ClassLoader.html#getSystemClassLoader()"><CODE>ClassLoader.getSystemClassLoader()</CODE></A> 返回)或其祖先之一的类加载器。 <p>在以下三种情况中,此方法将返回 <code>null</code>:<p> <ol><li>执行堆栈中的所有方法都来自于使用系统类加载器或其祖先之一所定义的类。<li>在执行堆栈中,直到第一个“特权”调用方(参见 <CODE>AccessController.doPrivileged(java.security.PrivilegedAction<T>)</CODE>)为止的所有方法都来自于使用系统类加载器或其祖先之一所定义的类。<li> 使用 <code>java.security.AllPermission</code> 调用 <code>checkPermission</code> 不会导致 SecurityException。 </ol><P><DD><DL><DT><B>返回:</B><DD>最近出现的、使用非系统类加载器定义的类方法堆栈中的类。<DT><B>另请参见:</B><DD><A HREF="ClassLoader.html#getSystemClassLoader()"><CODE>getSystemClassLoader</CODE></A>, <A HREF="SecurityManager.html#checkPermission(java.security.Permission)"><CODE>checkPermission</CODE></A></DL></DD></DL><HR><A NAME="classDepth(java.lang.String)"><!-- --></A><H3>classDepth</H3><PRE><FONT SIZE="-1"><A HREF="Deprecated.html" title="java.lang 中的注释">@Deprecated</A></FONT>protected int <B>classDepth</B>(<A HREF="String.html" title="java.lang 中的类">String</A> name)</PRE><DL><DD><B>已过时。</B> <I>建议不使用该类安全检查。建议使用 <code>checkPermission</code> 调用。</I><P><DD>返回指定类的堆栈深度。<P><DD><DL><DT><B>参数:</B><DD><CODE>name</CODE> - 要查找的类的完全限定名。<DT><B>返回:</B><DD>在指定名称的类中第一个方法出现的堆栈帧深度;如未找到这样的帧,则返回 <code>-1</code>。</DL></DD></DL><HR><A NAME="classLoaderDepth()"><!-- --></A><H3>classLoaderDepth</H3><PRE><FONT SIZE="-1"><A HREF="Deprecated.html" title="java.lang 中的注释">@Deprecated</A></FONT>protected int <B>classLoaderDepth</B>()</PRE><DL><DD><B>已过时。</B> <I>建议不使用该类安全检查。建议使用 <code>checkPermission</code> 调用。</I><P><DD>返回最近执行的、使用非系统类加载器定义的类方法的堆栈深度。非系统类加载器被定义为一种不同于系统类加载器(由 <A HREF="ClassLoader.html#getSystemClassLoader()"><CODE>ClassLoader.getSystemClassLoader()</CODE></A> 返回)或其祖先之一的类加载器。 <p>在以下三种情况中,此方法将返回 -1:<p> <ol><li>执行堆栈中的所有方法都来自于使用系统类加载器或其祖先之一所定义的类。<li>在执行堆栈中,直到第一个“特权”调用方(参见 <CODE>AccessController.doPrivileged(java.security.PrivilegedAction<T>)</CODE>)为止的所有方法都来自于使用系统类加载器或其祖先之一所定义的类。<li> 使用 <code>java.security.AllPermission</code> 调用 <code>checkPermission</code> 不会导致 SecurityException。 </ol><P><DD><DL><DT><B>返回:</B><DD>最近出现的、使用非系统类加载器定义的类方法的堆栈帧深度。<DT><B>另请参见:</B><DD><A HREF="ClassLoader.html#getSystemClassLoader()"><CODE>getSystemClassLoader</CODE></A>, <A HREF="SecurityManager.html#checkPermission(java.security.Permission)"><CODE>checkPermission</CODE></A></DL></DD></DL><HR><A NAME="inClass(java.lang.String)"><!-- --></A><H3>inClass</H3><PRE><FONT SIZE="-1"><A HREF="Deprecated.html" title="java.lang 中的注释">@Deprecated</A></FONT>protected boolean <B>inClass</B>(<A HREF="String.html" title="java.lang 中的类">String</A> name)</PRE><DL><DD><B>已过时。</B> <I>建议不使用该类安全检查。建议使用 <code>checkPermission</code> 调用。</I><P><DD>测试具有指定名称的类方法是否处于执行堆栈中。<P><DD><DL><DT><B>参数:</B><DD><CODE>name</CODE> - 该类的完全限定名。<DT><B>返回:</B><DD>如果具有指定名称的类方法处于执行堆栈中,则返回 <code>true</code>;否则返回 <code>false</code>。</DL></DD></DL><HR><A NAME="inClassLoader()"><!-- --></A><H3>inClassLoader</H3><PRE><FONT SIZE="-1"><A HREF="Deprecated.html" title="java.lang 中的注释">@Deprecated</A></FONT>protected boolean <B>inClassLoader</B>()</PRE><DL><DD><B>已过时。</B> <I>建议不使用该类安全检查。建议使用 <code>checkPermission</code> 调用。</I><P><DD>主要是测试某个使用类加载器定义的类方法是否处于执行堆栈中。<P><DD><DL><DT><B>返回:</B><DD>如果调用 <code>currentClassLoader</code> 具有非 null 的返回值,则返回 <code>true</code>。<DT><B>另请参见:</B><DD><A HREF="SecurityManager.html#currentClassLoader()"><CODE>currentClassLoader</CODE></A></DL></DD></DL><HR><A NAME="getSecurityContext()"><!-- --></A><H3>getSecurityContext</H3><PRE>public <A HREF="Object.html" title="java.lang 中的类">Object</A> <B>getSecurityContext</B>()</PRE><DL><DD>创建一个封装当前执行环境的对象。例如,此方法的结果由带有三参数的 <code>checkConnect</code> 方法和带有两参数的 <code>checkRead</code> 方法使用。这些方法是必需的,因为一个受信任的方法可能代表另一方法被调用,以读取一个文件或打开一个套接字。受信任的方法需要确定是否允许另一个方法(可能不受信任)独自执行该操作。 <p> 此方法的默认实现是返回 <code>AccessControlContext</code> 对象。<P><DD><DL><DT><B>返回:</B><DD>一个取决于实现的对象,该对象封装了有关当前执行环境的足够信息,这些信息用于稍后执行某些安全检查。<DT><B>另请参见:</B><DD><A HREF="SecurityManager.html#checkConnect(java.lang.String, int, java.lang.Object)"><CODE>checkConnect</CODE></A>, <A HREF="SecurityManager.html#checkRead(java.lang.String, java.lang.Object)"><CODE>checkRead</CODE></A>, <CODE>AccessControlContext</CODE></DL></DD></DL><HR><A NAME="checkPermission(java.security.Permission)"><!-- --></A><H3>checkPermission</H3><PRE>public void <B>checkPermission</B>(java.security.Permission perm)</PRE><DL><DD>如果基于当前有效的安全策略,不允许执行根据给定权限所指定的请求访问,则抛出 <code>SecurityException</code>。 <p>此方法使用给定的权限调用 <code>AccessController.checkPermission</code>。<P><DD><DL><DT><B>参数:</B><DD><CODE>perm</CODE> - 请求的权限。<DT><B>抛出:</B><DD><CODE><A HREF="SecurityException.html" title="java.lang 中的类">SecurityException</A></CODE> - 如果根据当前的安全策略不允许进行访问。<DD><CODE><A HREF="NullPointerException.html" title="java.lang 中的类">NullPointerException</A></CODE> - 如果 permission 参数为 <code>null</code>。<DT><B>从以下版本开始:</B></DT> <DD>1.2</DD></DL></DD></DL><HR><A NAME="checkPermission(java.security.Permission, java.lang.Object)"><!-- --></A><H3>checkPermission</H3><PRE>public void <B>checkPermission</B>(java.security.Permission perm, <A HREF="Object.html" title="java.lang 中的类">Object</A> context)</PRE><DL><DD>如果拒绝指定的安全上下文访问由给定权限所指定的资源,则抛出 <code>SecurityException</code>。该上下文必须是一个通过以前调用 <code>getSecurityContext</code> 所返回的安全上下文,并且应该根据为该安全上下文所配置的安全策略来作出访问控制决策。 <p>如果 <code>context</code> 是 <code>AccessControlContext</code> 的一个实例,则用指定的权限调用 <code>AccessControlContext.checkPermission</code> 方法。 <p>如果 <code>context</code> 不是 <code>AccessControlContext</code> 的一个实例,则抛出 <code>SecurityException</code>。<P><DD><DL><DT><B>参数:</B><DD><CODE>perm</CODE> - 指定的权限。<DD><CODE>context</CODE> - 一个取决于系统的安全上下文。<DT><B>抛出:</B><DD><CODE><A HREF="SecurityException.html" title="java.lang 中的类">SecurityException</A></CODE> - 如果指定的安全上下文不是 <code>AccessControlContext</code> 的一个实例(如为 <code>null</code>),或者访问由给定权限所指定的资源时被拒绝。<DD><CODE><A HREF="NullPointerException.html" title="java.lang 中的类">NullPointerException</A></CODE> - 如果权限参数为 <code>null</code>。<DT><B>从以下版本开始:</B></DT> <DD>1.2</DD><DT><B>另请参见:</B><DD><A HREF="SecurityManager.html#getSecurityContext()"><CODE>getSecurityContext()</CODE></A>, <CODE>AccessControlContext.checkPermission(java.security.Permission)</CODE></DL></DD></DL><HR><A NAME="checkCreateClassLoader()"><!-- --></A><H3>checkCreateClassLoader</H3><PRE>public void <B>checkCreateClassLoader</B>()</PRE><DL><DD>如果不允许调用线程创建新的类加载器,则抛出 <code>SecurityException</code>。 <p>此方法用 <code>RuntimePermission("createClassLoader")</code> 权限调用 <code>checkPermission</code>。 <p>如果重写此方法,那么应该在已重写方法通常将要抛出异常时调用 <code>super.checkCreateClassLoader</code>。<P><DD><DL><DT><B>抛出:</B><DD><CODE><A HREF="SecurityException.html" title="java.lang 中的类">SecurityException</A></CODE> - 如果调用线程没有创建新类加载器的权限。<DT><B>另请参见:</B><DD><A HREF="ClassLoader.html#ClassLoader()"><CODE>ClassLoader.ClassLoader()</CODE></A>, <A HREF="SecurityManager.html#checkPermission(java.security.Permission)"><CODE>checkPermission</CODE></A></DL></DD></DL><HR><A NAME="checkAccess(java.lang.Thread)"><!-- --></A><H3>checkAccess</H3><PRE>public void <B>checkAccess</B>(<A HREF="Thread.html" title="java.lang 中的类">Thread</A> t)</PRE><DL><DD>如果不允许调用线程修改 thread 参数,则抛出 <code>SecurityException</code>。 <p>由 <code>Thread</code> 类的 <code>stop</code>、<code>suspend</code>、<code>resume</code>、<code>setPriority</code>、<code>setName</code> 和 <code>setDaemon</code> 方法为当前的安全管理器调用此方法。 <p>如果 thread 参数是一个系统线程(属于具有一个 <code>null</code> 父线程的线程组),那么此方法使用 <code>RuntimePermission("modifyThread")</code> 权限调用 <code>checkPermission</code>。如果 thread 参数<i>不</i> 是一个系统线程,则此方法不执行任何操作。
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?