You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@river.apache.org by bu...@apache.org on 2010/12/24 21:22:31 UTC

svn commit: r781459 [3/5] - in /websites/staging/river/trunk/content/river/doc/api/net: ./ jini/ jini/security/

Added: websites/staging/river/trunk/content/river/doc/api/net/jini/security/ProxyPreparer.html
==============================================================================
--- websites/staging/river/trunk/content/river/doc/api/net/jini/security/ProxyPreparer.html (added)
+++ websites/staging/river/trunk/content/river/doc/api/net/jini/security/ProxyPreparer.html Fri Dec 24 20:22:31 2010
@@ -0,0 +1,240 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_15) on Mon Mar 08 17:46:24 EST 2010 -->
+<TITLE>
+ProxyPreparer (Apache River v2.1.2-SNAPSHOT API Documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="net.jini.security.ProxyPreparer interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="ProxyPreparer (Apache River v2.1.2-SNAPSHOT API Documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ProxyPreparer.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../net/jini/security/IntegrityVerifier.html" title="interface in net.jini.security"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../net/jini/security/Security.html" title="class in net.jini.security"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?net/jini/security/ProxyPreparer.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ProxyPreparer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+net.jini.security</FONT>
+<BR>
+Interface ProxyPreparer</H2>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../net/jini/security/BasicProxyPreparer.html" title="class in net.jini.security">BasicProxyPreparer</A>, <A HREF="../../../net/jini/security/VerifyingProxyPreparer.html" title="class in net.jini.security">VerifyingProxyPreparer</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>ProxyPreparer</B></DL>
+</PRE>
+
+<P>
+Performs operations on a newly unmarshalled remote proxy to prepare it for
+ use. Typical operations include verifying trust in the proxy by calling
+ <A HREF="../../../net/jini/security/Security.html#verifyObjectTrust(java.lang.Object, java.lang.ClassLoader, java.util.Collection)"><CODE>Security.verifyObjectTrust</CODE></A>, specifying
+ constraints by calling <A HREF="../../../net/jini/core/constraint/RemoteMethodControl.html#setConstraints(net.jini.core.constraint.MethodConstraints)"><CODE>RemoteMethodControl.setConstraints</CODE></A>, and granting the proxy permissions by
+ calling <A HREF="../../../net/jini/security/Security.html#grant(java.lang.Class, java.security.Permission[])"><CODE>Security.grant</CODE></A>. <p>
+
+ Applications are expected to use instances of this class retrieved from a
+ <A HREF="../../../net/jini/config/Configuration.html" title="interface in net.jini.config"><CODE>Configuration</CODE></A> to prepare all remote proxies that they receive in
+ order to permit configuring how applications handle proxies.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>2.0</DD>
+<DT><B>Author:</B></DT>
+  <DD>Sun Microsystems, Inc.</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../net/jini/security/ProxyPreparer.html#prepareProxy(java.lang.Object)">prepareProxy</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>&nbsp;proxy)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Performs operations on a newly unmarshalled proxy to prepare it for use,
+ returning the prepared proxy, which may or may not be the argument
+ itself.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="prepareProxy(java.lang.Object)"><!-- --></A><H3>
+prepareProxy</H3>
+<PRE>
+<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A> <B>prepareProxy</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>&nbsp;proxy)
+                    throws <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/RemoteException.html" title="class or interface in java.rmi">RemoteException</A></PRE>
+<DL>
+<DD>Performs operations on a newly unmarshalled proxy to prepare it for use,
+ returning the prepared proxy, which may or may not be the argument
+ itself. <p>
+
+ Typical operations performed by this method include verifying trust in
+ the proxy by calling <A HREF="../../../net/jini/security/Security.html#verifyObjectTrust(java.lang.Object, java.lang.ClassLoader, java.util.Collection)"><CODE>Security.verifyObjectTrust</CODE></A>, specifying constraints by calling <A HREF="../../../net/jini/core/constraint/RemoteMethodControl.html#setConstraints(net.jini.core.constraint.MethodConstraints)"><CODE>RemoteMethodControl.setConstraints</CODE></A>,
+ and granting the proxy permissions by calling <A HREF="../../../net/jini/security/Security.html#grant(java.lang.Class, java.security.Permission[])"><CODE>Security.grant</CODE></A>.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>proxy</CODE> - the proxy to prepare
+<DT><B>Returns:</B><DD>the prepared proxy
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/NullPointerException.html" title="class or interface in java.lang">NullPointerException</A></CODE> - if the proxy is <code>null</code>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/RemoteException.html" title="class or interface in java.rmi">RemoteException</A></CODE> - if a communication-related exception occurs
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/SecurityException.html" title="class or interface in java.lang">SecurityException</A></CODE> - if a security exception occurs</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ProxyPreparer.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../net/jini/security/IntegrityVerifier.html" title="interface in net.jini.security"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../net/jini/security/Security.html" title="class in net.jini.security"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?net/jini/security/ProxyPreparer.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ProxyPreparer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright 2007, multiple authors.<br>Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0" target="child" >Apache License, Version 2.0</a>, see the <a href="../../../doc-files/NOTICE" target="child" >NOTICE</a> file for attributions.
+</BODY>
+</HTML>

Added: websites/staging/river/trunk/content/river/doc/api/net/jini/security/Security.html
==============================================================================
--- websites/staging/river/trunk/content/river/doc/api/net/jini/security/Security.html (added)
+++ websites/staging/river/trunk/content/river/doc/api/net/jini/security/Security.html Fri Dec 24 20:22:31 2010
@@ -0,0 +1,768 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_15) on Mon Mar 08 17:46:24 EST 2010 -->
+<TITLE>
+Security (Apache River v2.1.2-SNAPSHOT API Documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="net.jini.security.Security class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Security (Apache River v2.1.2-SNAPSHOT API Documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Security.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../net/jini/security/ProxyPreparer.html" title="interface in net.jini.security"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../net/jini/security/SecurityContext.html" title="interface in net.jini.security"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?net/jini/security/Security.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Security.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+net.jini.security</FONT>
+<BR>
+Class Security</H2>
+<PRE>
+<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">java.lang.Object</A>
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>net.jini.security.Security</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public final class <B>Security</B><DT>extends <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A></DL>
+</PRE>
+
+<P>
+Provides methods for executing actions with privileges enabled, for
+ snapshotting security contexts, for verifying trust in proxies, for
+ verifying codebase integrity, and for dynamically granting permissions.
+ This class cannot be instantiated.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>2.0</DD>
+<DT><B>Author:</B></DT>
+  <DD>Sun Microsystems, Inc.</DD>
+<DT><B>Implementation Specifics:</B></DT>
+  <DD>This implementation uses the <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Logger.html" title="class or interface in java.util.logging"><CODE>Logger</CODE></A> named
+ <code>net.jini.security.integrity</code> to log information at
+ the following levels:
+ <table summary="Describes what is logged by Security to
+ the integrity logger at various logging levels" border=1 cellpadding=5>
+ <tr>
+ <th>Level</th>
+ <th>Description</th>
+ </tr>
+ <tr>
+ <td><A HREF="../../../com/sun/jini/logging/Levels.html#FAILED"><CODE>FAILED</CODE></A></td>
+ <td><code>verifyCodebaseIntegrity</code> throws a
+ <code>SecurityException</code> because no integrity verifier verifies
+ a URL</td>
+ </tr>
+ <tr>
+ <td><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html#FINE" title="class or interface in java.util.logging"><CODE>FINE</CODE></A></td>
+ <td>integrity verifier returns <code>true</code></td>
+ </tr>
+ <tr>
+ <td><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html#FINE" title="class or interface in java.util.logging"><CODE>FINE</CODE></A></td>
+ <td>creation of cached integrity verifiers</td>
+ </tr>
+ </table>
+ <p>
+ This implementation uses the <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Logger.html" title="class or interface in java.util.logging"><CODE>Logger</CODE></A> named
+ <code>net.jini.security.policy</code> to log information at
+ the following level:
+ <table summary="Describes what is logged by Security to
+ the policy logger at various logging levels" border=1 cellpadding=5>
+ <tr>
+ <th>Level</th>
+ <th>Description</th>
+ </tr>
+ <tr>
+ <td><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html#FINER" title="class or interface in java.util.logging"><CODE>FINER</CODE></A></td>
+ <td>dynamic permission grants</td>
+ </tr>
+ </table>
+ <p>
+ This implementation uses the <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Logger.html" title="class or interface in java.util.logging"><CODE>Logger</CODE></A> named
+ <code>net.jini.security.trust</code> to log information at
+ the following levels:
+ <table summary="Describes what is logged by Security to
+ the trust logger at various logging levels" border=1 cellpadding=5>
+ <tr>
+ <th>Level</th>
+ <th>Description</th>
+ </tr>
+ <tr>
+ <td><A HREF="../../../com/sun/jini/logging/Levels.html#FAILED"><CODE>FAILED</CODE></A></td>
+ <td><code>verifyObjectTrust</code> throws a <code>SecurityException</code>
+ because no trust verifier trusts the specified object</td>
+ </tr>
+ <tr>
+ <td><A HREF="../../../com/sun/jini/logging/Levels.html#FAILED"><CODE>FAILED</CODE></A></td>
+ <td><code>TrustVerifier.Context.isTrustedObject</code> throws an
+ exception</td>
+ </tr>
+ <tr>
+ <td><A HREF="../../../com/sun/jini/logging/Levels.html#HANDLED"><CODE>HANDLED</CODE></A></td>
+ <td>trust verifier throws a <code>RemoteException</code> or a
+ <code>SecurityException</code></td>
+ </tr>
+ <tr>
+ <td><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html#FINE" title="class or interface in java.util.logging"><CODE>FINE</CODE></A></td>
+ <td>trust verifier returns <code>true</code></td>
+ </tr>
+ <tr>
+ <td><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html#FINE" title="class or interface in java.util.logging"><CODE>FINE</CODE></A></td>
+ <td>creation of cached trust verifiers</td>
+ </tr>
+ <tr>
+ <td><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html#FINE" title="class or interface in java.util.logging"><CODE>FINE</CODE></A></td>
+ <td><code>TrustVerifier.Context.isTrustedObject</code> returns
+ <code>false</code> because no trust verifier trusts the specified
+ object</td>
+ </tr>
+ </table></DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../net/jini/security/Security.html#doPrivileged(java.security.PrivilegedAction)">doPrivileged</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/PrivilegedAction.html" title="class or interface in java.security">PrivilegedAction</A>&nbsp;action)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Executes the specified action's <code>run</code> method with privileges
+ enabled, preserving the domain combiner (if any) of the calling context.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../net/jini/security/Security.html#doPrivileged(java.security.PrivilegedExceptionAction)">doPrivileged</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/PrivilegedExceptionAction.html" title="class or interface in java.security">PrivilegedExceptionAction</A>&nbsp;action)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Executes the specified action's <code>run</code> method with privileges
+ enabled, preserving the domain combiner (if any) of the calling context.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../net/jini/security/SecurityContext.html" title="interface in net.jini.security">SecurityContext</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../net/jini/security/Security.html#getContext()">getContext</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a snapshot of the current security context, which can be used to
+ restore the context at a later time.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../net/jini/security/Security.html#grant(java.lang.Class, java.lang.Class)">grant</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Class.html" title="class or interface in java.lang">Class</A>&nbsp;fromClass,
+      <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Class.html" title="class or interface in java.lang">Class</A>&nbsp;toClass)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If the installed security policy provider implements the <A HREF="../../../net/jini/security/policy/DynamicPolicy.html" title="interface in net.jini.security.policy"><CODE>DynamicPolicy</CODE></A> interface, takes the set of permissions dynamically
+ granted to the class loader of <code>fromClass</code> with the current
+ subject's principals, determines which of those permissions the calling
+ context is authorized to grant, and dynamically grants that subset of
+ the permissions to the class loader of <code>toClass</code>, qualified
+ with the current subject's principals.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../net/jini/security/Security.html#grant(java.lang.Class, java.security.Permission[])">grant</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Class.html" title="class or interface in java.lang">Class</A>&nbsp;cl,
+      <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/Permission.html" title="class or interface in java.security">Permission</A>[]&nbsp;permissions)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If the installed security policy provider implements the
+ <A HREF="../../../net/jini/security/policy/DynamicPolicy.html" title="interface in net.jini.security.policy"><CODE>DynamicPolicy</CODE></A> interface, delegates to the security policy
+ provider to grant the specified permissions to all protection domains
+ (including ones not yet created) that are associated with the class
+ loader of the given class and possess at least the principals of the
+ current subject (if any).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../net/jini/security/Security.html#grant(java.lang.Class, java.security.Principal[], java.security.Permission[])">grant</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Class.html" title="class or interface in java.lang">Class</A>&nbsp;cl,
+      <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/Principal.html" title="class or interface in java.security">Principal</A>[]&nbsp;principals,
+      <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/Permission.html" title="class or interface in java.security">Permission</A>[]&nbsp;permissions)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If the installed security policy provider implements the
+ <A HREF="../../../net/jini/security/policy/DynamicPolicy.html" title="interface in net.jini.security.policy"><CODE>DynamicPolicy</CODE></A> interface, delegates to the security policy
+ provider to grant the specified permissions to all protection domains
+ (including ones not yet created) that are associated with the class
+ loader of the given class and possess at least the given set of
+ principals.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../net/jini/security/Security.html#grantSupported()">grantSupported</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if the installed security policy provider
+ supports dynamic permission grants--i.e., if it implements the <A HREF="../../../net/jini/security/policy/DynamicPolicy.html" title="interface in net.jini.security.policy"><CODE>DynamicPolicy</CODE></A> interface and calling its <A HREF="../../../net/jini/security/policy/DynamicPolicy.html#grantSupported()"><CODE>grantSupported</CODE></A> method returns
+ <code>true</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../net/jini/security/Security.html#verifyCodebaseIntegrity(java.lang.String, java.lang.ClassLoader)">verifyCodebaseIntegrity</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;codebase,
+                        <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/ClassLoader.html" title="class or interface in java.lang">ClassLoader</A>&nbsp;loader)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Verifies that the URLs in the specified codebase all provide content
+ integrity, using verifiers from the specified class loader.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../net/jini/security/Security.html#verifyObjectTrust(java.lang.Object, java.lang.ClassLoader, java.util.Collection)">verifyObjectTrust</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>&nbsp;obj,
+                  <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/ClassLoader.html" title="class or interface in java.lang">ClassLoader</A>&nbsp;loader,
+                  <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/Collection.html" title="class or interface in java.util">Collection</A>&nbsp;context)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Verifies that the specified object can be trusted to correctly implement
+ its contract, using verifiers from the specified class loader and
+ using the specified collection of context objects as necessary.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://
 java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="verifyObjectTrust(java.lang.Object, java.lang.ClassLoader, java.util.Collection)"><!-- --></A><H3>
+verifyObjectTrust</H3>
+<PRE>
+public static void <B>verifyObjectTrust</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>&nbsp;obj,
+                                     <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/ClassLoader.html" title="class or interface in java.lang">ClassLoader</A>&nbsp;loader,
+                                     <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/Collection.html" title="class or interface in java.util">Collection</A>&nbsp;context)
+                              throws <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/RemoteException.html" title="class or interface in java.rmi">RemoteException</A></PRE>
+<DL>
+<DD>Verifies that the specified object can be trusted to correctly implement
+ its contract, using verifiers from the specified class loader and
+ using the specified collection of context objects as necessary. If a
+ <code>null</code> class loader is specified, the context class loader
+ of the current thread is used instead. Code that is itself downloaded
+ and that carries its own trust verifiers (to trust other downloaded
+ code) should specify an explicit class loader unless the calling code
+ is known to be reachable from the context class loader.
+ <p>
+ A <A HREF="../../../net/jini/security/TrustVerifier.Context.html" title="interface in net.jini.security"><CODE>TrustVerifier.Context</CODE></A> is created, containing an ordered list
+ of trust verifiers (obtained as specified below) and the specified class
+ loader and collection of context objects. The
+ <A HREF="../../../net/jini/security/TrustVerifier.Context.html#isTrustedObject(java.lang.Object)"><CODE>isTrustedObject</CODE></A> method
+ of that context is then called with the specified object. If that call
+ returns <code>true</code>, then this method returns normally. If that
+ call throws a <code>RemoteException</code> or
+ <code>SecurityException</code> exception, that exception is thrown by
+ this method. If that call returns <code>false</code>, a
+ <code>SecurityException</code> is thrown.
+ <p>
+ The collection of context objects is provided as a means for the
+ caller to communicate additional information to the trust verifiers.
+ The meaning of an element in this collection is determined by its
+ type. As a specific example, if any trust verifiers might communicate
+ with a remote server (in particular, when verifying a proxy for a
+ remote server), the caller might be responsible for specifying any
+ necessary client constraints as a context object of type
+ <A HREF="../../../net/jini/core/constraint/MethodConstraints.html" title="interface in net.jini.core.constraint"><CODE>MethodConstraints</CODE></A>.
+ <p>
+ When security is a concern, this method should be called with a
+ downloaded proxy before making any other use of the proxy, in order to
+ verify basic trust in the proxy to correctly implement its contract.
+ This method can also be used to verify trust in other types of objects,
+ depending on what verifiers have been configured. In general,
+ verification of an object involves verification of all of its
+ constituent objects. However, for objects that are instances of
+ <A HREF="../../../net/jini/core/constraint/RemoteMethodControl.html" title="interface in net.jini.core.constraint"><CODE>RemoteMethodControl</CODE></A>,
+ the client constraints (that would be returned by
+ <A HREF="../../../net/jini/core/constraint/RemoteMethodControl.html#getConstraints()"><CODE>RemoteMethodControl.getConstraints</CODE></A>) are not verified; it is assumed
+ that the caller will either replace them or independently decide that
+ it trusts them. Verification of other types of objects may similarly
+ exempt certain application-controlled state.
+ <p>
+ The list of trust verifiers is obtained as follows. For each resource
+ named
+ <code>META-INF/services/net.jini.security.TrustVerifier</code>
+ that is visible to the specified class loader, the contents of the
+ resource are parsed as UTF-8 text to produce a list of class names.
+ The resource must contain a list of fully qualified class names, one per
+ line. Space and tab characters surrounding each name, as well as blank
+ lines, are ignored.  The comment character is <tt>'#'</tt>; all
+ characters on each line starting with the first comment character are
+ ignored. Each class name (that is not a duplicate of any previous class
+ name) is loaded through the specified class loader, and the resulting
+ class must be assignable to <A HREF="../../../net/jini/security/TrustVerifier.html" title="interface in net.jini.security"><CODE>TrustVerifier</CODE></A> and have a public
+ no-argument constructor. The constructor is invoked to create a trust
+ verifier instance. An implementation of this method is permitted to
+ cache the verifier instances associated with a class loader, rather than
+ recreating them on every call.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>obj</CODE> - the object in which to verify trust<DD><CODE>loader</CODE> - the class loader for finding trust verifiers, or
+ <code>null</code> to use the context class loader<DD><CODE>context</CODE> - a collection of context objects for use by trust
+ verifiers
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/SecurityException.html" title="class or interface in java.lang">SecurityException</A></CODE> - if the object is not trusted, or if a
+ <code>SecurityException</code> is thrown by the trust verifier context
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/RemoteException.html" title="class or interface in java.rmi">RemoteException</A></CODE> - if a communication-related exception occurs
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/NullPointerException.html" title="class or interface in java.lang">NullPointerException</A></CODE> - if the collection is <code>null</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="verifyCodebaseIntegrity(java.lang.String, java.lang.ClassLoader)"><!-- --></A><H3>
+verifyCodebaseIntegrity</H3>
+<PRE>
+public static void <B>verifyCodebaseIntegrity</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;codebase,
+                                           <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/ClassLoader.html" title="class or interface in java.lang">ClassLoader</A>&nbsp;loader)
+                                    throws <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/net/MalformedURLException.html" title="class or interface in java.net">MalformedURLException</A></PRE>
+<DL>
+<DD>Verifies that the URLs in the specified codebase all provide content
+ integrity, using verifiers from the specified class loader. If a
+ <code>null</code> class loader is specified, the context class loader of
+ the current thread is used instead. An ordered list of integrity
+ verifiers is obtained as specified below. For each URL (if any) in the
+ specified codebase, the <A HREF="../../../net/jini/security/IntegrityVerifier.html#providesIntegrity(java.net.URL)"><CODE>providesIntegrity</CODE></A> method of each verifier is called (in order) with
+ the URL. If any verifier call returns <code>true</code>, the URL is
+ verified (and no further verifiers are called with that URL). If all of
+ the verifier calls return <code>false</code> for a URL, this method
+ throws a <code>SecurityException</code>. If all of the URLs are
+ verified, this method returns normally.
+ <p>
+ The list of integrity verifiers is obtained as follows. For each
+ resource named
+ <code>META-INF/services/net.jini.security.IntegrityVerifier</code>
+ that is visible to the specified class loader, the contents of the
+ resource are parsed as UTF-8 text to produce a list of class names.
+ The resource must contain a list of fully qualified class names, one per
+ line. Space and tab characters surrounding each name, as well as blank
+ lines, are ignored.  The comment character is <tt>'#'</tt>; all
+ characters on each line starting with the first comment character are
+ ignored. Each class name (that is not a duplicate of any previous class
+ name) is loaded through the specified class loader, and the resulting
+ class must be assignable to <A HREF="../../../net/jini/security/IntegrityVerifier.html" title="interface in net.jini.security"><CODE>IntegrityVerifier</CODE></A> and have a public
+ no-argument constructor. The constructor is invoked to create an
+ integrity verifier instance. An implementation of this method is
+ permitted to cache the verifier instances associated with a
+ class loader, rather than recreating them on every call.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>codebase</CODE> - space-separated list of URLs, or <code>null</code><DD><CODE>loader</CODE> - the class loader for finding integrity verifiers, or
+ <code>null</code> to use the context class loader
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/net/MalformedURLException.html" title="class or interface in java.net">MalformedURLException</A></CODE> - if the specified codebase contains
+ an invalid URL
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/SecurityException.html" title="class or interface in java.lang">SecurityException</A></CODE> - if any URL in the specified codebase
+ does not provide content integrity</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getContext()"><!-- --></A><H3>
+getContext</H3>
+<PRE>
+public static <A HREF="../../../net/jini/security/SecurityContext.html" title="interface in net.jini.security">SecurityContext</A> <B>getContext</B>()</PRE>
+<DL>
+<DD>Returns a snapshot of the current security context, which can be used to
+ restore the context at a later time.  If either the installed security
+ manager or policy provider implements the <A HREF="../../../net/jini/security/policy/SecurityContextSource.html" title="interface in net.jini.security.policy"><CODE>SecurityContextSource</CODE></A>
+ interface, then this method delegates to the <A HREF="../../../net/jini/security/policy/SecurityContextSource.html#getContext()"><CODE>getContext</CODE></A> method of the
+ implementing object, with precedence given to the security manager.  If
+ neither the security manager nor the policy provider implement
+ <code>SecurityContextSource</code>, then a new default
+ <A HREF="../../../net/jini/security/SecurityContext.html" title="interface in net.jini.security"><CODE>SecurityContext</CODE></A> instance is
+ returned whose methods have the following semantics:
+ <ul>
+ <li>The <code>wrap</code> methods each return their respective
+ <code>PrivilegedAction</code> and <code>PrivilegedExceptionAction</code>
+ arguments, unmodified
+ <li>The <code>getAccessControlContext</code> method returns the
+ <code>AccessControlContext</code> in effect when the security context
+ was created
+ </ul>
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>snapshot of the current security context</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="doPrivileged(java.security.PrivilegedAction)"><!-- --></A><H3>
+doPrivileged</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A> <B>doPrivileged</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/PrivilegedAction.html" title="class or interface in java.security">PrivilegedAction</A>&nbsp;action)</PRE>
+<DL>
+<DD>Executes the specified action's <code>run</code> method with privileges
+ enabled, preserving the domain combiner (if any) of the calling context.
+ If the action's <code>run</code> method throws an unchecked exception,
+ that exception is thrown by this method.  This method is equivalent to
+ the <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/AccessController.html#doPrivileged(java.security.PrivilegedAction)" title="class or interface in java.security"><CODE>AccessController.doPrivileged</CODE></A> method of the same signature, except that
+ it maintains, instead of clears, the domain combiner (if any) in place
+ at the time of the call.  This typically results in preservation of the
+ current <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/security/auth/Subject.html" title="class or interface in javax.security.auth"><CODE>Subject</CODE></A> (if the combiner is a <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/security/auth/SubjectDomainCombiner.html" title="class or interface in javax.security.auth"><CODE>SubjectDomainCombiner</CODE></A>), thus retaining permissions granted to
+ principals of the <code>Subject</code>, as well as the ability to use
+ credentials of the <code>Subject</code> for authentication.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>action</CODE> - the action to be executed
+<DT><B>Returns:</B><DD>the object returned by the action's <code>run</code> method
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/NullPointerException.html" title="class or interface in java.lang">NullPointerException</A></CODE> - if the action is <code>null</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="doPrivileged(java.security.PrivilegedExceptionAction)"><!-- --></A><H3>
+doPrivileged</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A> <B>doPrivileged</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/PrivilegedExceptionAction.html" title="class or interface in java.security">PrivilegedExceptionAction</A>&nbsp;action)
+                           throws <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/PrivilegedActionException.html" title="class or interface in java.security">PrivilegedActionException</A></PRE>
+<DL>
+<DD>Executes the specified action's <code>run</code> method with privileges
+ enabled, preserving the domain combiner (if any) of the calling context.
+ If the action's <code>run</code> method throws an unchecked exception,
+ that exception is thrown by this method.  This method is equivalent to
+ the <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/AccessController.html#doPrivileged(java.security.PrivilegedExceptionAction)" title="class or interface in java.security"><CODE>AccessController.doPrivileged</CODE></A> method of the same signature, except that
+ it maintains, instead of clears, the domain combiner (if any) in place
+ at the time of the call.  This typically results in preservation of the
+ current <code>Subject</code> (if the combiner is a
+ <code>SubjectDomainCombiner</code>), thus retaining permissions granted
+ to principals of the <code>Subject</code>, as well as the ability to use
+ credentials of the <code>Subject</code> for authentication.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>action</CODE> - the action to be executed
+<DT><B>Returns:</B><DD>the object returned by the action's <code>run</code> method
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/PrivilegedActionException.html" title="class or interface in java.security">PrivilegedActionException</A></CODE> - if the action's <code>run</code>
+ method throws a checked exception
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/NullPointerException.html" title="class or interface in java.lang">NullPointerException</A></CODE> - if the action is <code>null</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="grantSupported()"><!-- --></A><H3>
+grantSupported</H3>
+<PRE>
+public static boolean <B>grantSupported</B>()</PRE>
+<DL>
+<DD>Returns <code>true</code> if the installed security policy provider
+ supports dynamic permission grants--i.e., if it implements the <A HREF="../../../net/jini/security/policy/DynamicPolicy.html" title="interface in net.jini.security.policy"><CODE>DynamicPolicy</CODE></A> interface and calling its <A HREF="../../../net/jini/security/policy/DynamicPolicy.html#grantSupported()"><CODE>grantSupported</CODE></A> method returns
+ <code>true</code>.  Returns <code>false</code> otherwise.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><code>true</code> if the installed security policy provider
+ supports dynamic permission grants<DT><B>See Also:</B><DD><A HREF="../../../net/jini/security/Security.html#grant(java.lang.Class, java.security.Permission[])"><CODE>grant(Class,Permission[])</CODE></A>, 
+<A HREF="../../../net/jini/security/Security.html#grant(java.lang.Class, java.security.Principal[], java.security.Permission[])"><CODE>grant(Class,Principal[],Permission[])</CODE></A>, 
+<A HREF="../../../net/jini/security/Security.html#grant(java.lang.Class, java.lang.Class)"><CODE>grant(Class,Class)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="grant(java.lang.Class, java.security.Permission[])"><!-- --></A><H3>
+grant</H3>
+<PRE>
+public static void <B>grant</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Class.html" title="class or interface in java.lang">Class</A>&nbsp;cl,
+                         <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/Permission.html" title="class or interface in java.security">Permission</A>[]&nbsp;permissions)</PRE>
+<DL>
+<DD>If the installed security policy provider implements the
+ <A HREF="../../../net/jini/security/policy/DynamicPolicy.html" title="interface in net.jini.security.policy"><CODE>DynamicPolicy</CODE></A> interface, delegates to the security policy
+ provider to grant the specified permissions to all protection domains
+ (including ones not yet created) that are associated with the class
+ loader of the given class and possess at least the principals of the
+ current subject (if any).  If the given class is <code>null</code>, then
+ the grant applies across all protection domains that possess at least
+ the current subject's principals.  The current subject is determined by
+ calling <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/security/auth/Subject.html#getSubject(java.security.AccessControlContext)" title="class or interface in javax.security.auth"><CODE>Subject.getSubject</CODE></A> on the context
+ returned by <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/AccessController.html#getContext()" title="class or interface in java.security"><CODE>AccessController.getContext</CODE></A>.  If the current subject is
+ <code>null</code> or has no principals, then principals are effectively
+ ignored in determining the protection domains to which the grant
+ applies.  
+ <p>
+ The given class, if non-<code>null</code>, must belong to either the
+ system domain or a protection domain whose associated class loader is
+ non-<code>null</code>.  If the class does not belong to such a
+ protection domain, then no permissions are granted and an
+ <code>UnsupportedOperationException</code> is thrown.
+ <p>
+ If a security manager is installed, its <code>checkPermission</code>
+ method is called with a <A HREF="../../../net/jini/security/GrantPermission.html" title="class in net.jini.security"><CODE>GrantPermission</CODE></A> containing the
+ permissions to grant; if the permission check fails, then no permissions
+ are granted and the resulting <code>SecurityException</code> is thrown.
+ The permissions array passed in is neither modified nor retained;
+ subsequent changes to the array have no effect on the grant operation.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>cl</CODE> - class to grant permissions to the class loader of, or
+ <code>null</code> if granting across all class loaders<DD><CODE>permissions</CODE> - if non-<code>null</code>, permissions to grant
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/UnsupportedOperationException.html" title="class or interface in java.lang">UnsupportedOperationException</A></CODE> - if the installed security policy
+ provider does not support dynamic permission grants, or if
+ <code>cl</code> is non-<code>null</code> and belongs to a protection
+ domain other than the system domain with an associated class loader of
+ <code>null</code>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/SecurityException.html" title="class or interface in java.lang">SecurityException</A></CODE> - if a security manager is installed and the
+ calling context does not have <code>GrantPermission</code> for the given
+ permissions
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/NullPointerException.html" title="class or interface in java.lang">NullPointerException</A></CODE> - if any element of the permissions array is
+ <code>null</code><DT><B>See Also:</B><DD><A HREF="../../../net/jini/security/Security.html#grantSupported()"><CODE>grantSupported()</CODE></A>, 
+<A HREF="../../../net/jini/security/policy/DynamicPolicy.html#grant(java.lang.Class, java.security.Principal[], java.security.Permission[])"><CODE>DynamicPolicy.grant(Class,Principal[],Permission[])</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="grant(java.lang.Class, java.security.Principal[], java.security.Permission[])"><!-- --></A><H3>
+grant</H3>
+<PRE>
+public static void <B>grant</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Class.html" title="class or interface in java.lang">Class</A>&nbsp;cl,
+                         <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/Principal.html" title="class or interface in java.security">Principal</A>[]&nbsp;principals,
+                         <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/Permission.html" title="class or interface in java.security">Permission</A>[]&nbsp;permissions)</PRE>
+<DL>
+<DD>If the installed security policy provider implements the
+ <A HREF="../../../net/jini/security/policy/DynamicPolicy.html" title="interface in net.jini.security.policy"><CODE>DynamicPolicy</CODE></A> interface, delegates to the security policy
+ provider to grant the specified permissions to all protection domains
+ (including ones not yet created) that are associated with the class
+ loader of the given class and possess at least the given set of
+ principals.  If the given class is <code>null</code>, then the grant
+ applies across all protection domains that possess at least the
+ specified principals.  If the list of principals is <code>null</code> or
+ empty, then principals are effectively ignored in determining the
+ protection domains to which the grant applies.  
+ <p>
+ The given class, if non-<code>null</code>, must belong to either the
+ system domain or a protection domain whose associated class loader is
+ non-<code>null</code>.  If the class does not belong to such a
+ protection domain, then no permissions are granted and an
+ <code>UnsupportedOperationException</code> is thrown.
+ <p>
+ If a security manager is installed, its <code>checkPermission</code>
+ method is called with a <code>GrantPermission</code> containing the
+ permissions to grant; if the permission check fails, then no permissions
+ are granted and the resulting <code>SecurityException</code> is thrown.
+ The principals and permissions arrays passed in are neither modified nor
+ retained; subsequent changes to the arrays have no effect on the grant
+ operation.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>cl</CODE> - class to grant permissions to the class loader of, or
+ <code>null</code> if granting across all class loaders<DD><CODE>principals</CODE> - if non-<code>null</code>, minimum set of principals to
+ which grants apply<DD><CODE>permissions</CODE> - if non-<code>null</code>, permissions to grant
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/UnsupportedOperationException.html" title="class or interface in java.lang">UnsupportedOperationException</A></CODE> - if the installed security policy
+ provider does not support dynamic permission grants, or if
+ <code>cl</code> is non-<code>null</code> and belongs to a protection
+ domain other than the system domain with an associated class loader of
+ <code>null</code>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/SecurityException.html" title="class or interface in java.lang">SecurityException</A></CODE> - if a security manager is installed and the
+ calling context does not have <code>GrantPermission</code> for the given
+ permissions
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/NullPointerException.html" title="class or interface in java.lang">NullPointerException</A></CODE> - if any element of the principals or
+ permissions arrays is <code>null</code><DT><B>See Also:</B><DD><A HREF="../../../net/jini/security/Security.html#grantSupported()"><CODE>grantSupported()</CODE></A>, 
+<A HREF="../../../net/jini/security/policy/DynamicPolicy.html#grant(java.lang.Class, java.security.Principal[], java.security.Permission[])"><CODE>DynamicPolicy.grant(Class,Principal[],Permission[])</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="grant(java.lang.Class, java.lang.Class)"><!-- --></A><H3>
+grant</H3>
+<PRE>
+public static void <B>grant</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Class.html" title="class or interface in java.lang">Class</A>&nbsp;fromClass,
+                         <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Class.html" title="class or interface in java.lang">Class</A>&nbsp;toClass)</PRE>
+<DL>
+<DD>If the installed security policy provider implements the <A HREF="../../../net/jini/security/policy/DynamicPolicy.html" title="interface in net.jini.security.policy"><CODE>DynamicPolicy</CODE></A> interface, takes the set of permissions dynamically
+ granted to the class loader of <code>fromClass</code> with the current
+ subject's principals, determines which of those permissions the calling
+ context is authorized to grant, and dynamically grants that subset of
+ the permissions to the class loader of <code>toClass</code>, qualified
+ with the current subject's principals.  The current subject is
+ determined by calling <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/security/auth/Subject.html#getSubject(java.security.AccessControlContext)" title="class or interface in javax.security.auth"><CODE>Subject.getSubject</CODE></A> on
+ the context returned by <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/AccessController.html#getContext()" title="class or interface in java.security"><CODE>AccessController.getContext</CODE></A>; the permissions dynamically granted to
+ <code>fromClass</code> are determined by calling the <A HREF="../../../net/jini/security/policy/DynamicPolicy.html#getGrants(java.lang.Class, java.security.Principal[])"><CODE>getGrants</CODE></A> method of the currently installed
+ policy, and the permission grant to <code>toClass</code> is performed by
+ invoking the <A HREF="../../../net/jini/security/policy/DynamicPolicy.html#grant(java.lang.Class, java.security.Principal[], java.security.Permission[])"><CODE>grant</CODE></A> method of the current
+ policy.
+ <p>
+ Both of the given classes must be non-<code>null</code>, and must belong
+ to either the system domain or a protection domain whose associated
+ class loader is non-<code>null</code>.  If either class does not belong
+ to such a protection domain, then no permissions are granted and an
+ <code>UnsupportedOperationException</code> is thrown.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>fromClass</CODE> - class indicating the source class loader of the dynamic
+ grants to propagate<DD><CODE>toClass</CODE> - class indicating the target class loader of the dynamic
+ grants to propagate
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/NullPointerException.html" title="class or interface in java.lang">NullPointerException</A></CODE> - if <code>fromClass</code> or
+ <code>toClass</code> is <code>null</code>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/UnsupportedOperationException.html" title="class or interface in java.lang">UnsupportedOperationException</A></CODE> - if currently installed policy does
+ not support dynamic permission grants, or if either specified class
+ belongs to a protection domain with a <code>null</code> class loader,
+ other than the system domain</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Security.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../net/jini/security/ProxyPreparer.html" title="interface in net.jini.security"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../net/jini/security/SecurityContext.html" title="interface in net.jini.security"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?net/jini/security/Security.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Security.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright 2007, multiple authors.<br>Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0" target="child" >Apache License, Version 2.0</a>, see the <a href="../../../doc-files/NOTICE" target="child" >NOTICE</a> file for attributions.
+</BODY>
+</HTML>

Added: websites/staging/river/trunk/content/river/doc/api/net/jini/security/SecurityContext.html
==============================================================================
--- websites/staging/river/trunk/content/river/doc/api/net/jini/security/SecurityContext.html (added)
+++ websites/staging/river/trunk/content/river/doc/api/net/jini/security/SecurityContext.html Fri Dec 24 20:22:31 2010
@@ -0,0 +1,316 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_15) on Mon Mar 08 17:46:24 EST 2010 -->
+<TITLE>
+SecurityContext (Apache River v2.1.2-SNAPSHOT API Documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="net.jini.security.SecurityContext interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="SecurityContext (Apache River v2.1.2-SNAPSHOT API Documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/SecurityContext.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../net/jini/security/Security.html" title="class in net.jini.security"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../net/jini/security/TrustVerifier.html" title="interface in net.jini.security"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?net/jini/security/SecurityContext.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="SecurityContext.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+net.jini.security</FONT>
+<BR>
+Interface SecurityContext</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>SecurityContext</B></DL>
+</PRE>
+
+<P>
+Interface implemented by objects representing security contexts, returned
+ from the <A HREF="../../../net/jini/security/Security.html#getContext()"><CODE>getContext</CODE></A> method of the <A HREF="../../../net/jini/security/Security.html" title="class in net.jini.security"><CODE>Security</CODE></A> class, which in turn may obtain them from a security manager or
+ policy provider implementing the
+ <A HREF="../../../net/jini/security/policy/SecurityContextSource.html" title="interface in net.jini.security.policy"><CODE>SecurityContextSource</CODE></A> interface.
+ Each <code>SecurityContext</code> contains an <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/AccessControlContext.html" title="class or interface in java.security"><CODE>AccessControlContext</CODE></A>
+ instance representing the access control context in place when the security
+ context was snapshotted; this instance can be passed to one of the
+ <code>doPrivileged</code> methods of the <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/AccessController.html" title="class or interface in java.security"><CODE>AccessController</CODE></A> class to restore the
+ <code>AccessControlContext</code> portion of the overall security context.
+ Additional state (if any) carried by the security context can be restored
+ for the duration of a <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/PrivilegedAction.html" title="class or interface in java.security"><CODE>PrivilegedAction</CODE></A> or <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/PrivilegedExceptionAction.html" title="class or interface in java.security"><CODE>PrivilegedExceptionAction</CODE></A> by passing that action to the appropriate wrap
+ method of the <code>SecurityContext</code> instance, and then executing the
+ returned "wrapper" action.  These two operations--restoring the access
+ control context, and restoring any additional context encapsulated by the
+ <code>SecurityContext</code> instance--should be performed in conjunction
+ with a single <code>AccessController.doPrivileged</code> call, as
+ illustrated below:
+ <pre>
+      // snapshot context
+      SecurityContext ctx = Security.getContext();
+
+      // restore context
+      AccessController.doPrivileged(
+          ctx.wrap(action), ctx.getAccessControlContext());
+ </pre>
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>2.0</DD>
+<DT><B>Author:</B></DT>
+  <DD>Sun Microsystems, Inc.</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/AccessControlContext.html" title="class or interface in java.security">AccessControlContext</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../net/jini/security/SecurityContext.html#getAccessControlContext()">getAccessControlContext</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns access control context portion of snapshotted security context.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/PrivilegedAction.html" title="class or interface in java.security">PrivilegedAction</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../net/jini/security/SecurityContext.html#wrap(java.security.PrivilegedAction)">wrap</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/PrivilegedAction.html" title="class or interface in java.security">PrivilegedAction</A>&nbsp;action)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a security context-restoring <code>PrivilegedAction</code> that
+ wraps the given action, or returns the action itself if the security
+ context does not include any non-<code>AccessControlContext</code> state
+ to restore.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/PrivilegedExceptionAction.html" title="class or interface in java.security">PrivilegedExceptionAction</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../net/jini/security/SecurityContext.html#wrap(java.security.PrivilegedExceptionAction)">wrap</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/PrivilegedExceptionAction.html" title="class or interface in java.security">PrivilegedExceptionAction</A>&nbsp;action)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a security context-restoring
+ <code>PrivilegedExceptionAction</code> that wraps the given action, or
+ returns the action itself if the security context does not include any
+ non-<code>AccessControlContext</code> state to restore.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="wrap(java.security.PrivilegedAction)"><!-- --></A><H3>
+wrap</H3>
+<PRE>
+<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/PrivilegedAction.html" title="class or interface in java.security">PrivilegedAction</A> <B>wrap</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/PrivilegedAction.html" title="class or interface in java.security">PrivilegedAction</A>&nbsp;action)</PRE>
+<DL>
+<DD>Returns a security context-restoring <code>PrivilegedAction</code> that
+ wraps the given action, or returns the action itself if the security
+ context does not include any non-<code>AccessControlContext</code> state
+ to restore.  The <code>run</code> method of the "wrapper" action (if
+ any) restores the non-<code>AccessControlContext</code> state of the
+ security context before invoking the <code>run</code> method of the
+ wrapped action, and unrestores that state after the wrapped action's
+ <code>run</code> method has completed (normally or otherwise).  The
+ value returned or exception thrown by the wrapped action's
+ <code>run</code> method is propagated through the <code>run</code>
+ method of the wrapper action.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>action</CODE> - the action to be wrapped
+<DT><B>Returns:</B><DD>security context-restoring action wrapping <code>action</code>,
+ or <code>action</code> if no wrapping is necessary
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/NullPointerException.html" title="class or interface in java.lang">NullPointerException</A></CODE> - if <code>action</code> is <code>null</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="wrap(java.security.PrivilegedExceptionAction)"><!-- --></A><H3>
+wrap</H3>
+<PRE>
+<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/PrivilegedExceptionAction.html" title="class or interface in java.security">PrivilegedExceptionAction</A> <B>wrap</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/PrivilegedExceptionAction.html" title="class or interface in java.security">PrivilegedExceptionAction</A>&nbsp;action)</PRE>
+<DL>
+<DD>Returns a security context-restoring
+ <code>PrivilegedExceptionAction</code> that wraps the given action, or
+ returns the action itself if the security context does not include any
+ non-<code>AccessControlContext</code> state to restore.  The
+ <code>run</code> method of the "wrapper" action (if any) restores the
+ non-<code>AccessControlContext</code> state of the security context
+ before invoking the <code>run</code> method of the wrapped action, and
+ unrestores that state after the wrapped action's <code>run</code> method
+ has completed (normally or otherwise).  The value returned or exception
+ thrown by the wrapped action's <code>run</code> method is propagated
+ through the <code>run</code> method of the wrapper action.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>action</CODE> - the action to be wrapped
+<DT><B>Returns:</B><DD>security context-restoring action wrapping <code>action</code>,
+ or <code>action</code> if no wrapping is necessary
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/NullPointerException.html" title="class or interface in java.lang">NullPointerException</A></CODE> - if <code>action</code> is <code>null</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getAccessControlContext()"><!-- --></A><H3>
+getAccessControlContext</H3>
+<PRE>
+<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/AccessControlContext.html" title="class or interface in java.security">AccessControlContext</A> <B>getAccessControlContext</B>()</PRE>
+<DL>
+<DD>Returns access control context portion of snapshotted security context.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>access control context portion of snapshotted security context</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/SecurityContext.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../net/jini/security/Security.html" title="class in net.jini.security"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../net/jini/security/TrustVerifier.html" title="interface in net.jini.security"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?net/jini/security/SecurityContext.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="SecurityContext.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright 2007, multiple authors.<br>Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0" target="child" >Apache License, Version 2.0</a>, see the <a href="../../../doc-files/NOTICE" target="child" >NOTICE</a> file for attributions.
+</BODY>
+</HTML>