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 22:04:11 UTC

svn commit: r781507 [4/5] - /websites/staging/river/trunk/content/river/doc/api/net/jini/jeri/ssl/

Added: websites/staging/river/trunk/content/river/doc/api/net/jini/jeri/ssl/SslServerEndpoint.html
==============================================================================
--- websites/staging/river/trunk/content/river/doc/api/net/jini/jeri/ssl/SslServerEndpoint.html (added)
+++ websites/staging/river/trunk/content/river/doc/api/net/jini/jeri/ssl/SslServerEndpoint.html Fri Dec 24 21:04:10 2010
@@ -0,0 +1,1163 @@
+<!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:20 EST 2010 -->
+<TITLE>
+SslServerEndpoint (Apache River v2.1.2-SNAPSHOT API Documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="net.jini.jeri.ssl.SslServerEndpoint class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="SslServerEndpoint (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/SslServerEndpoint.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/jeri/ssl/SslEndpoint.html" title="class in net.jini.jeri.ssl"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../net/jini/jeri/ssl/SslTrustVerifier.html" title="class in net.jini.jeri.ssl"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?net/jini/jeri/ssl/SslServerEndpoint.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="SslServerEndpoint.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.jeri.ssl</FONT>
+<BR>
+Class SslServerEndpoint</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.jeri.ssl.SslServerEndpoint</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../net/jini/jeri/ServerCapabilities.html" title="interface in net.jini.jeri">ServerCapabilities</A>, <A HREF="../../../../net/jini/jeri/ServerEndpoint.html" title="interface in net.jini.jeri">ServerEndpoint</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public final class <B>SslServerEndpoint</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><DT>implements <A HREF="../../../../net/jini/jeri/ServerEndpoint.html" title="interface in net.jini.jeri">ServerEndpoint</A></DL>
+</PRE>
+
+<P>
+An implementation of <A HREF="../../../../net/jini/jeri/ServerEndpoint.html" title="interface in net.jini.jeri"><CODE>ServerEndpoint</CODE></A> that uses TLS/SSL to support
+ invocation constraints for direct communication over TCP sockets. <p>
+
+ Instances of this class are intended to be created for use with the <A HREF="../../../../net/jini/jeri/BasicJeriExporter.html" title="class in net.jini.jeri"><CODE>BasicJeriExporter</CODE></A> class. Calls to <A HREF="../../../../net/jini/jeri/ssl/SslServerEndpoint.html#enumerateListenEndpoints(net.jini.jeri.ServerEndpoint.ListenContext)"><CODE>enumerateListenEndpoints</CODE></A> return instances of <A HREF="../../../../net/jini/jeri/ssl/SslEndpoint.html" title="class in net.jini.jeri.ssl"><CODE>SslEndpoint</CODE></A>. <p>
+
+ This class supports at least the following constraints, possibly limited by
+ the available cipher suites: <p>
+
+ <ul>
+ <li> <A HREF="../../../../net/jini/core/constraint/ClientAuthentication.html" title="class in net.jini.core.constraint"><CODE>ClientAuthentication</CODE></A>
+ <li> <A HREF="../../../../net/jini/core/constraint/ClientMaxPrincipal.html" title="class in net.jini.core.constraint"><CODE>ClientMaxPrincipal</CODE></A>, when it contains an <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/security/auth/x500/X500Principal.html" title="class or interface in javax.security.auth.x500"><CODE>X500Principal</CODE></A>
+ <li> <A HREF="../../../../net/jini/core/constraint/ClientMaxPrincipalType.html" title="class in net.jini.core.constraint"><CODE>ClientMaxPrincipalType</CODE></A>, when it contains
+        <code>X500Principal</code>
+ <li> <A HREF="../../../../net/jini/core/constraint/ClientMinPrincipal.html" title="class in net.jini.core.constraint"><CODE>ClientMinPrincipal</CODE></A>, when it contains a single
+        <code>X500Principal</code> only
+ <li> <A HREF="../../../../net/jini/core/constraint/ClientMinPrincipalType.html" title="class in net.jini.core.constraint"><CODE>ClientMinPrincipalType</CODE></A>, when it contains
+        <code>X500Principal</code> only
+ <li> <A HREF="../../../../net/jini/core/constraint/Confidentiality.html" title="class in net.jini.core.constraint"><CODE>Confidentiality</CODE></A>
+ <li> <A HREF="../../../../net/jini/jeri/ssl/ConfidentialityStrength.html" title="class in net.jini.jeri.ssl"><CODE>ConfidentialityStrength</CODE></A>, a provider-specific constraint for
+        specifying weak or strong confidentiality
+ <li> <A HREF="../../../../net/jini/core/constraint/ConnectionAbsoluteTime.html" title="class in net.jini.core.constraint"><CODE>ConnectionAbsoluteTime</CODE></A>, trivially, since this only takes effect
+        on the client side
+ <li> <A HREF="../../../../net/jini/core/constraint/ConnectionRelativeTime.html" title="class in net.jini.core.constraint"><CODE>ConnectionRelativeTime</CODE></A>, trivially, since this only takes effect
+        on the client side
+ <li> <A HREF="../../../../net/jini/core/constraint/ConstraintAlternatives.html" title="class in net.jini.core.constraint"><CODE>ConstraintAlternatives</CODE></A>, if the elements all have the same
+        actual class and at least one element is supported
+ <li> <A HREF="../../../../net/jini/core/constraint/Delegation.html#NO"><CODE>Delegation.NO</CODE></A>
+ <li> <A HREF="../../../../net/jini/core/constraint/Delegation.html#YES"><CODE>Delegation.YES</CODE></A>, trivially, for anonymous clients
+ <li> <A HREF="../../../../net/jini/core/constraint/DelegationAbsoluteTime.html" title="class in net.jini.core.constraint"><CODE>DelegationAbsoluteTime</CODE></A>, trivially, when delegation is not
+        supported
+ <li> <A HREF="../../../../net/jini/core/constraint/DelegationRelativeTime.html" title="class in net.jini.core.constraint"><CODE>DelegationRelativeTime</CODE></A>, trivially, when delegation is not
+        supported
+ <li> <A HREF="../../../../net/jini/core/constraint/Integrity.html#YES"><CODE>Integrity.YES</CODE></A>
+ <li> <A HREF="../../../../net/jini/core/constraint/ServerAuthentication.html" title="class in net.jini.core.constraint"><CODE>ServerAuthentication</CODE></A>
+ <li> <A HREF="../../../../net/jini/core/constraint/ServerMinPrincipal.html" title="class in net.jini.core.constraint"><CODE>ServerMinPrincipal</CODE></A>, when it contains a single
+        <code>X500Principal</code> only
+ </ul> <p>
+
+ This class authenticates as a single <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/Principal.html" title="class or interface in java.security"><CODE>Principal</CODE></A> if the following
+ items are present in the server <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>: <p>
+
+ <ul>
+ <li> One or more principals of type <code>X500Principal</code>
+ <li> For each principal, one or more certificate chains, stored as public
+      credentials, and represented by instances of <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/cert/CertPath.html" title="class or interface in java.security.cert"><CODE>CertPath</CODE></A>, whose
+      <code>getType</code> method returns "X.509", and for which calling
+      <code>getSubjectDN</code> on the certificate chain's first element
+      returns that principal's name
+ <li> For each certificate chain, an instance of <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/security/auth/x500/X500PrivateCredential.html" title="class or interface in javax.security.auth.x500"><CODE>X500PrivateCredential</CODE></A>, stored as a private credential, whose
+      <code>getCertificate</code> method returns a value equal to the first
+      element of the certificate chain, and whose <code>getPrivateKey</code>
+      method returns the associated private key
+ </ul> <p>
+
+ In addition, this class will only dispatch remote calls that authenticate as
+ a given principal if the caller of <A HREF="../../../../net/jini/jeri/ServerEndpoint.ListenEndpoint.html#listen(net.jini.jeri.RequestDispatcher)"><CODE>listen</CODE></A> on the class's
+ <A HREF="../../../../net/jini/jeri/ServerEndpoint.ListenEndpoint.html" title="interface in net.jini.jeri"><CODE>ServerEndpoint.ListenEndpoint</CODE></A> has been granted <A HREF="../../../../net/jini/security/AuthenticationPermission.html" title="class in net.jini.security"><CODE>AuthenticationPermission</CODE></A> with that principal as the local principal, the
+ principal representing the authenticated identity of the client for the call
+ (if any) as the peer principal, and the <code>accept</code> action. <p>
+
+ This class supports remote connections between authenticated servers and
+ authenticated or anonymous clients, and between anonymous servers and
+ anonymous clients. Connections between anonymous servers and authenticated
+ clients are not supported. Because of the suites available in the TLS/SSL
+ protocol, support for <A HREF="../../../../net/jini/core/constraint/Confidentiality.html#NO"><CODE>Confidentiality.NO</CODE></A> requires the server to
+ authenticate with an RSA public key. <p>
+
+ If the server subject contains principals and credentials that would permit
+ authentication of more than one <code>X500Principal</code>, the endpoint
+ will make an arbitrary choice of the principal to use for authentication,
+ and will continue to make the same choice so long as subject contents,
+ validity of credentials, and security permissions do not change. <p>
+
+ The host name specified when creating an <code>SslServerEndpoint</code>
+ instance controls the host name that will be contained in
+ <code>SslEndpoint</code> instances produced when <A HREF="../../../../net/jini/jeri/ssl/SslServerEndpoint.html#enumerateListenEndpoints(net.jini.jeri.ServerEndpoint.ListenContext)"><CODE>enumerateListenEndpoints</CODE></A> is invoked to listen on
+ the server endpoint; the host name does not affect the behavior of the
+ listen operation itself, which listens on all of the local system's network
+ addresses. If the host name in the server endpoint is <code>null</code>,
+ then the host name in the <code>SslEndpoint</code> instances that it
+ produces will be the default server host name, which is the IP address
+ string of the <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/net/InetAddress.html" title="class or interface in java.net"><CODE>InetAddress</CODE></A> returned by <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/net/InetAddress.html#getLocalHost()" title="class or interface in java.net"><CODE>InetAddress.getLocalHost</CODE></A> when
+ <code>enumerateListenEndpoints</code> is invoked. <p>
+
+ This class permits specifying a <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/net/SocketFactory.html" title="class or interface in javax.net"><CODE>SocketFactory</CODE></A> for creating the
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/net/Socket.html" title="class or interface in java.net"><CODE>Socket</CODE></A> instances that the associated <code>SslEndpoint</code>
+ instances use to make remote connections back to the server, and a <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/net/ServerSocketFactory.html" title="class or interface in javax.net"><CODE>ServerSocketFactory</CODE></A> for creating the <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/net/ServerSocket.html" title="class or interface in java.net"><CODE>ServerSocket</CODE></A> instances that
+ the server endpoint uses to accept remote connections. These socket
+ factories and sockets should not implement the TLS/SSL protocol; it is the
+ responsibility of the implementation to establish TLS/SSL connections over
+ the sockets it obtains from the socket factories. In particular, instances
+ of <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/net/ssl/SSLSocketFactory.html" title="class or interface in javax.net.ssl"><CODE>SSLSocketFactory</CODE></A> and <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/net/ssl/SSLServerSocketFactory.html" title="class or interface in javax.net.ssl"><CODE>SSLServerSocketFactory</CODE></A> should not be
+ used, and the factories used should not return instances of <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/net/ssl/SSLSocket.html" title="class or interface in javax.net.ssl"><CODE>SSLSocket</CODE></A> or <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/net/ssl/SSLServerSocket.html" title="class or interface in javax.net.ssl"><CODE>SSLServerSocket</CODE></A>. <p>
+
+ A <code>SocketFactory</code> used with instances of this class should be
+ serializable, and must implement <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"><CODE>Object.equals</CODE></A> to obey
+ the guidelines that are specified for <code>equals</code> methods of <A HREF="../../../../net/jini/jeri/Endpoint.html" title="interface in net.jini.jeri"><CODE>Endpoint</CODE></A> instances. A <code>ServerSocketFactory</code> used with instances
+ of this class must implement <code>Object.equals</code> to obey the
+ guidelines that are specified for <code>equals</code> methods of <A HREF="../../../../net/jini/jeri/ServerEndpoint.ListenEndpoint.html" title="interface in net.jini.jeri"><CODE>ListenEndpoint</CODE></A> instances. <p>
+
+ This class uses the <a href="../connection/doc-files/mux.html">Jini
+ extensible remote invocation (Jini ERI) multiplexing protocol</a> to map
+ outgoing requests to socket connections.
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>2.0</DD>
+<DT><B>Author:</B></DT>
+  <DD>Sun Microsystems, Inc.</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../../net/jini/jeri/ssl/SslEndpoint.html" title="class in net.jini.jeri.ssl"><CODE>SslEndpoint</CODE></A>, 
+<A HREF="../../../../net/jini/jeri/ssl/ConfidentialityStrength.html" title="class in net.jini.jeri.ssl"><CODE>ConfidentialityStrength</CODE></A><DT><B>Implementation Specifics:</B></DT>
+  <DD><!-- Implementation Specifics -->
+
+ This implementation uses the <a
+ href="http://java.sun.com/j2se/1.4/docs/guide/security/jsse/JSSERefGuide.html"
+ target="_top">Java(TM) Secure Socket Extension (JSSE)</a>. <p>
+
+ This implementation uses the <A HREF="../../../../net/jini/jeri/connection/ServerConnectionManager.html" title="class in net.jini.jeri.connection"><CODE>ServerConnectionManager</CODE></A> class to manage
+ connections. <p>
+
+ This implementation uses the following <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> instances in the
+ <code>net.jini.jeri.ssl</code> namespace: <p>
+
+ <ul>
+ <li> <a href="#init_logger">init</a> - problems during initialization
+ <li> <a href="#server_logger">server</a> - information about
+        server-side connections
+ </ul> <p>
+
+ <a name="init_logger"></a>
+ <table border="1" cellpadding="5" summary="Describes logging to the init
+          logger performed by the SslServerEndpoint class at different
+          logging levels">
+
+ <caption halign="center" valign="top"><b><code>
+            net.jini.jeri.ssl.init</code></b></caption>
+     
+ <tr> <th scope="col"> Level <th scope="col"> Description
+
+ <tr> <td> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html#WARNING" title="class or interface in java.util.logging"><CODE>WARNING</CODE></A> <td> problems with initializing JSSE
+
+ </table> <p>
+
+ <a name="server_logger"></a>
+ <table border="1" cellpadding="5" summary="Describes logging to the server
+          logger performed by the SslServerEndpoint class at different
+          logging levels">
+
+ <caption halign="center" valign="top"><b><code>
+            net.jini.jeri.ssl.server</code></b></caption>
+     
+ <tr> <th scope="col"> Level <th scope="col"> Description
+
+ <tr> <td> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html#INFO" title="class or interface in java.util.logging"><CODE>INFO</CODE></A> <td> problems with accepting or handling
+ server connections, or with handling inbound requests
+
+ <tr> <td> <A HREF="../../../../com/sun/jini/logging/Levels.html#FAILED"><CODE>FAILED</CODE></A> <td> problems with checking
+ constraints or permissions, with enumerating listen endpoints, or with
+ security issues for inbound requests
+
+ <tr> <td> <A HREF="../../../../com/sun/jini/logging/Levels.html#HANDLED"><CODE>HANDLED</CODE></A> <td> exceptions caught involving
+ authentication
+ 
+ <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> creating server endpoints,
+ enumerating listen endpoints, creating or closing connections or listen
+ handles, or checking constraints for endpoints or inbound requests
+
+ <tr> <td> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html#FINEST" title="class or interface in java.util.logging"><CODE>FINEST</CODE></A> <td> low level operation tracing
+
+ </table> <p>
+
+ This implementation uses the following security providers: <p>
+
+ <ul>
+ <li> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/net/ssl/SSLContext.html" title="class or interface in javax.net.ssl"><CODE>SSLContext</CODE></A>, with the protocol specified by the
+        <code>com.sun.jini.jeri.ssl.sslProtocol</code> system property, or
+        <code>"TLS"</code> if that property is not defined, to provide the
+        TLS/SSL implementation. The <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/net/ssl/SSLContext.html#init(javax.net.ssl.KeyManager[], javax.net.ssl.TrustManager[], java.security.SecureRandom)" title="class or interface in javax.net.ssl"><CODE>SSLContext.init</CODE></A>
+        method is called with <code>null</code> for the <code>random</code>
+        parameter to use the default <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/SecureRandom.html" title="class or interface in java.security"><CODE>SecureRandom</CODE></A> implementation.
+ <li> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/cert/CertificateFactory.html" title="class or interface in java.security.cert"><CODE>CertificateFactory</CODE></A>, with type <code>"X.509"</code>, to generate
+        <code>CertPath</code> instances from X.509 certificate chains
+ <li> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/net/ssl/TrustManagerFactory.html" title="class or interface in javax.net.ssl"><CODE>TrustManagerFactory</CODE></A>, with the algorithm specified by the
+        <code>com.sun.jini.jeri.ssl.trustManagerFactoryAlgorithm</code> system
+        property, or the default algorithm if that property is not defined, to
+        implement trust management for the TLS/SSL implementation. The factory
+        must return trust managers that implement <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/net/ssl/X509TrustManager.html" title="class or interface in javax.net.ssl"><CODE>X509TrustManager</CODE></A>.
+ </ul> <p>
+ 
+ See the documentation on <a
+ href="http://java.sun.com/j2se/1.4/docs/guide/security/CryptoSpec.html#ProviderInstalling"
+ target="_top">installing security providers</a> and <a
+ href="http://java.sun.com/j2se/1.4/docs/guide/security/jsse/JSSERefGuide.html#ProviderCust"
+ target="_top">configuring JSSE</a> for information on configuring these
+ providers. <p>
+
+ The <a
+ href="http://java.sun.com/j2se/1.4/docs/guide/security/jsse/JSSERefGuide.html#Customization"
+ target="_top">JSSE documentation</a> also describes the system properties
+ for configuring the location, type, and password of the truststore that this
+ implementation uses, through JSSE, to make decisions about what certificate
+ chains should be trusted. <p>
+ 
+ This implementation recognizes the following system properties: <p>
+ 
+ <ul>
+ <li> <code>com.sun.jini.jeri.ssl.maxServerSessionDuration</code> - The
+        maximum number of milliseconds a server-side TLS/SSL session should be
+        used before expiring. The default is 24 hours. The value used should be
+        larger than the maximum client session duration to allow the client to
+        negotiate a new session before the server timeout occurs.
+ <li> <code>com.sun.jini.jeri.ssl.sslProtocol</code> - The secure socket
+        protocol used when obtaining <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/net/ssl/SSLContext.html" title="class or interface in javax.net.ssl"><CODE>SSLContext</CODE></A> instances. The default
+        is <code>"TLS"</code>.
+ <li> <code>com.sun.jini.jeri.ssl.trustManagerFactoryAlgorithm</code> - The
+        algorithm used when obtaining <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/net/ssl/TrustManagerFactory.html" title="class or interface in javax.net.ssl"><CODE>TrustManagerFactory</CODE></A>
+        instances. The default is the value returned by <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/net/ssl/TrustManagerFactory.html#getDefaultAlgorithm()" title="class or interface in javax.net.ssl"><CODE>TrustManagerFactory.getDefaultAlgorithm</CODE></A>.
+ <li> <code>com.sun.jini.jeri.ssl.cipherSuites</code> - The TLS/SSL cipher
+        suites that should be used for communication. The default is the list
+        of suites supported by the JSSE implementation. The value should
+        specify the suite names, separated by commas. The value will be ignored
+        if it contains no suites or specifies suites that are not supported by
+        the JSSE implementation. Suites appearing earlier in the list will be
+        preferred to ones appearing later for suites that support the same
+        requirements and preferences.
+ </ul></DD>
+</DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+<A NAME="nested_class_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>Nested Class Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="nested_classes_inherited_from_class_net.jini.jeri.ServerEndpoint"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Nested classes/interfaces inherited from interface net.jini.jeri.<A HREF="../../../../net/jini/jeri/ServerEndpoint.html" title="interface in net.jini.jeri">ServerEndpoint</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../../net/jini/jeri/ServerEndpoint.ListenContext.html" title="interface in net.jini.jeri">ServerEndpoint.ListenContext</A>, <A HREF="../../../../net/jini/jeri/ServerEndpoint.ListenCookie.html" title="interface in net.jini.jeri">ServerEndpoint.ListenCookie</A>, <A HREF="../../../../net/jini/jeri/ServerEndpoint.ListenEndpoint.html" title="interface in net.jini.jeri">ServerEndpoint.ListenEndpoint</A>, <A HREF="../../../../net/jini/jeri/ServerEndpoint.ListenHandle.html" title="interface in net.jini.jeri">ServerEndpoint.ListenHandle</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<!-- ========== 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="../../../../net/jini/core/constraint/InvocationConstraints.html" title="class in net.jini.core.constraint">InvocationConstraints</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../net/jini/jeri/ssl/SslServerEndpoint.html#checkConstraints(net.jini.core.constraint.InvocationConstraints)">checkConstraints</A></B>(<A HREF="../../../../net/jini/core/constraint/InvocationConstraints.html" title="class in net.jini.core.constraint">InvocationConstraints</A>&nbsp;constraints)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks that it is possible to receive requests that either
+ fully or partially satisfy the specified requirements, and
+ returns any constraints that must be fully or partially
+ implemented by higher layers in order to fully satisfy all of
+ the specified requirements.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../../net/jini/jeri/Endpoint.html" title="interface in net.jini.jeri">Endpoint</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../net/jini/jeri/ssl/SslServerEndpoint.html#enumerateListenEndpoints(net.jini.jeri.ServerEndpoint.ListenContext)">enumerateListenEndpoints</A></B>(<A HREF="../../../../net/jini/jeri/ServerEndpoint.ListenContext.html" title="interface in net.jini.jeri">ServerEndpoint.ListenContext</A>&nbsp;listenContext)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Passes the <A HREF="../../../../net/jini/jeri/ServerEndpoint.ListenEndpoint.html" title="interface in net.jini.jeri"><CODE>ListenEndpoint</CODE></A> for this <code>SslServerEndpoint</code> to
+ <code>listenContext</code>, which will ensure an active listen
+ operation on the endpoint, and returns an <code>SslEndpoint</code>
+ instance corresponding to the listen operation chosen by
+ <code>listenContext</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../net/jini/jeri/ssl/SslServerEndpoint.html#equals(java.lang.Object)">equals</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;object)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Two instances of this class are equal if they have server subjects that
+ compare equal using <code>==</code>; have server principals that are
+ either both <code>null</code> or are equal when compared as the elements
+ of a <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/Set.html" title="class or interface in java.util"><CODE>Set</CODE></A>; have the same values for server host and port; have
+ socket factories that are either both <code>null</code>, or have the
+ same actual class and are equal; and have server socket factories
+ that are either both <code>null</code>, or have the same actual class
+ and are equal.</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/lang/String.html" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../net/jini/jeri/ssl/SslServerEndpoint.html#getHost()">getHost</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the host name that will be used in <A HREF="../../../../net/jini/jeri/ssl/SslEndpoint.html" title="class in net.jini.jeri.ssl"><CODE>SslEndpoint</CODE></A> instances
+ created by listening on this object, or <code>null</code> if <A HREF="../../../../net/jini/jeri/ssl/SslServerEndpoint.html#enumerateListenEndpoints(net.jini.jeri.ServerEndpoint.ListenContext)"><CODE>enumerateListenEndpoints</CODE></A> will use the default
+ server host.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../net/jini/jeri/ssl/SslServerEndpoint.html" title="class in net.jini.jeri.ssl">SslServerEndpoint</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../net/jini/jeri/ssl/SslServerEndpoint.html#getInstance(int)">getInstance</A></B>(int&nbsp;port)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a TLS/SSL server endpoint for the specified port.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../net/jini/jeri/ssl/SslServerEndpoint.html" title="class in net.jini.jeri.ssl">SslServerEndpoint</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../net/jini/jeri/ssl/SslServerEndpoint.html#getInstance(java.lang.String, int)">getInstance</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;serverHost,
+            int&nbsp;port)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a TLS/SSL server endpoint for the specified server host and
+ port.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../net/jini/jeri/ssl/SslServerEndpoint.html" title="class in net.jini.jeri.ssl">SslServerEndpoint</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../net/jini/jeri/ssl/SslServerEndpoint.html#getInstance(java.lang.String, int, javax.net.SocketFactory, javax.net.ServerSocketFactory)">getInstance</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;serverHost,
+            int&nbsp;port,
+            <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/net/SocketFactory.html" title="class or interface in javax.net">SocketFactory</A>&nbsp;socketFactory,
+            <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/net/ServerSocketFactory.html" title="class or interface in javax.net">ServerSocketFactory</A>&nbsp;serverSocketFactory)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a TLS/SSL server endpoint for the specified server host, port,
+ and socket factories.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../net/jini/jeri/ssl/SslServerEndpoint.html" title="class in net.jini.jeri.ssl">SslServerEndpoint</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../net/jini/jeri/ssl/SslServerEndpoint.html#getInstance(javax.security.auth.Subject, javax.security.auth.x500.X500Principal[], java.lang.String, int)">getInstance</A></B>(<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">Subject</A>&nbsp;serverSubject,
+            <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/security/auth/x500/X500Principal.html" title="class or interface in javax.security.auth.x500">X500Principal</A>[]&nbsp;serverPrincipals,
+            <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;serverHost,
+            int&nbsp;port)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a TLS/SSL server endpoint for the specified server subject,
+ server principals, server host, and port.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../../net/jini/jeri/ssl/SslServerEndpoint.html" title="class in net.jini.jeri.ssl">SslServerEndpoint</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../net/jini/jeri/ssl/SslServerEndpoint.html#getInstance(javax.security.auth.Subject, javax.security.auth.x500.X500Principal[], java.lang.String, int, javax.net.SocketFactory, javax.net.ServerSocketFactory)">getInstance</A></B>(<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">Subject</A>&nbsp;serverSubject,
+            <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/security/auth/x500/X500Principal.html" title="class or interface in javax.security.auth.x500">X500Principal</A>[]&nbsp;serverPrincipals,
+            <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;serverHost,
+            int&nbsp;port,
+            <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/net/SocketFactory.html" title="class or interface in javax.net">SocketFactory</A>&nbsp;socketFactory,
+            <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/net/ServerSocketFactory.html" title="class or interface in javax.net">ServerSocketFactory</A>&nbsp;serverSocketFactory)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a TLS/SSL server endpoint for the specified server subject,
+ server principals, server host, port, and socket factories.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../net/jini/jeri/ssl/SslServerEndpoint.html#getPort()">getPort</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the TCP port on which this object listens for connections, or
+ <code>0</code> if it selects a free port.</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/util/Set.html" title="class or interface in java.util">Set</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../net/jini/jeri/ssl/SslServerEndpoint.html#getPrincipals()">getPrincipals</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an immutable set of the principals that this instance uses for
+ authentication, or <code>null</code> if it is anonymous.</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/javax/net/ServerSocketFactory.html" title="class or interface in javax.net">ServerSocketFactory</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../net/jini/jeri/ssl/SslServerEndpoint.html#getServerSocketFactory()">getServerSocketFactory</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the server socket factory that this server endpoint uses to
+ create <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/net/ServerSocket.html" title="class or interface in java.net"><CODE>ServerSocket</CODE></A> instances, or <code>null</code> if it uses
+ default server sockets.</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/javax/net/SocketFactory.html" title="class or interface in javax.net">SocketFactory</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../net/jini/jeri/ssl/SslServerEndpoint.html#getSocketFactory()">getSocketFactory</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the socket factory that the associated <A HREF="../../../../net/jini/jeri/ssl/SslEndpoint.html" title="class in net.jini.jeri.ssl"><CODE>SslEndpoint</CODE></A>
+ instances created by listening on this server endpoint use to create
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/net/Socket.html" title="class or interface in java.net"><CODE>Socket</CODE></A> instances, or <code>null</code> if they use default
+ sockets.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../net/jini/jeri/ssl/SslServerEndpoint.html#hashCode()">hashCode</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a hash code value for this object.</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/lang/String.html" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../net/jini/jeri/ssl/SslServerEndpoint.html#toString()">toString</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a string representation of this object.</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#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#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#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="getInstance(int)"><!-- --></A><H3>
+getInstance</H3>
+<PRE>
+public static <A HREF="../../../../net/jini/jeri/ssl/SslServerEndpoint.html" title="class in net.jini.jeri.ssl">SslServerEndpoint</A> <B>getInstance</B>(int&nbsp;port)</PRE>
+<DL>
+<DD>Returns a TLS/SSL server endpoint for the specified port. Uses the
+ <code>null</code> server host (which requests that <A HREF="../../../../net/jini/jeri/ssl/SslServerEndpoint.html#enumerateListenEndpoints(net.jini.jeri.ServerEndpoint.ListenContext)"><CODE>enumerateListenEndpoints</CODE></A> compute the default
+ server host), the subject associated with the current access control
+ context, the principals in the subject with appropriate public and
+ private credentials for which the caller has <A HREF="../../../../net/jini/security/AuthenticationPermission.html" title="class in net.jini.security"><CODE>AuthenticationPermission</CODE></A> to listen, and <code>null</code> socket
+ factories to create default sockets. A <code>port</code> of
+ <code>0</code> requests listening on any free port.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>port</CODE> - the port on which to listen for connections, or
+              <code>0</code> for any free port
+<DT><B>Returns:</B><DD>an <code>SslServerEndpoint</code> instance
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html" title="class or interface in java.lang">IllegalArgumentException</A></CODE> - if <code>port</code> is negative or
+               greater than <code>65535</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getInstance(java.lang.String, int)"><!-- --></A><H3>
+getInstance</H3>
+<PRE>
+public static <A HREF="../../../../net/jini/jeri/ssl/SslServerEndpoint.html" title="class in net.jini.jeri.ssl">SslServerEndpoint</A> <B>getInstance</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;serverHost,
+                                            int&nbsp;port)</PRE>
+<DL>
+<DD>Returns a TLS/SSL server endpoint for the specified server host and
+ port. Uses the subject associated with the current access control
+ context, the principals in the subject with appropriate public and
+ private credentials for which the caller has <A HREF="../../../../net/jini/security/AuthenticationPermission.html" title="class in net.jini.security"><CODE>AuthenticationPermission</CODE></A> to listen, and <code>null</code> socket
+ factories to create default sockets. A <code>serverHost</code> of
+ <code>null</code> requests that <A HREF="../../../../net/jini/jeri/ssl/SslServerEndpoint.html#enumerateListenEndpoints(net.jini.jeri.ServerEndpoint.ListenContext)"><CODE>enumerateListenEndpoints</CODE></A> compute the default server host. A
+ <code>port</code> of <code>0</code> requests listening on any free port.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>serverHost</CODE> - the name that clients should use to connect to this
+              server, or <code>null</code> to use the default<DD><CODE>port</CODE> - the port on which to listen for connections, or
+              <code>0</code> for any free port
+<DT><B>Returns:</B><DD>an <code>SslServerEndpoint</code> instance
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html" title="class or interface in java.lang">IllegalArgumentException</A></CODE> - if <code>port</code> is negative or
+               greater than <code>65535</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getInstance(java.lang.String, int, javax.net.SocketFactory, javax.net.ServerSocketFactory)"><!-- --></A><H3>
+getInstance</H3>
+<PRE>
+public static <A HREF="../../../../net/jini/jeri/ssl/SslServerEndpoint.html" title="class in net.jini.jeri.ssl">SslServerEndpoint</A> <B>getInstance</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;serverHost,
+                                            int&nbsp;port,
+                                            <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/net/SocketFactory.html" title="class or interface in javax.net">SocketFactory</A>&nbsp;socketFactory,
+                                            <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/net/ServerSocketFactory.html" title="class or interface in javax.net">ServerSocketFactory</A>&nbsp;serverSocketFactory)</PRE>
+<DL>
+<DD>Returns a TLS/SSL server endpoint for the specified server host, port,
+ and socket factories. Uses the subject associated with the current
+ access control context, and the principals in the subject with
+ appropriate public and private credentials for which the caller has
+ <A HREF="../../../../net/jini/security/AuthenticationPermission.html" title="class in net.jini.security"><CODE>AuthenticationPermission</CODE></A> to listen. A <code>serverHost</code> of
+ <code>null</code> requests that <A HREF="../../../../net/jini/jeri/ssl/SslServerEndpoint.html#enumerateListenEndpoints(net.jini.jeri.ServerEndpoint.ListenContext)"><CODE>enumerateListenEndpoints</CODE></A> compute the default server host. A
+ <code>port</code> of <code>0</code> requests listening on any free
+ port. A <code>socketFactory</code> of <code>null</code> uses default
+ sockets in the associated <A HREF="../../../../net/jini/jeri/ssl/SslEndpoint.html" title="class in net.jini.jeri.ssl"><CODE>SslEndpoint</CODE></A>. A
+ <code>serverSocketFactory</code> of <code>null</code> uses default
+ server sockets.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>serverHost</CODE> - the name that clients should use to connect to this
+              server, or <code>null</code> to use the default<DD><CODE>port</CODE> - the port on which to listen for connections, or
+              <code>0</code> for any free port<DD><CODE>socketFactory</CODE> - the socket factory for use in the associated
+              <code>SslEndpoint</code> instances, or <code>null</code><DD><CODE>serverSocketFactory</CODE> - the server socket factory, or
+              <code>null</code>
+<DT><B>Returns:</B><DD>an <code>SslServerEndpoint</code> instance
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html" title="class or interface in java.lang">IllegalArgumentException</A></CODE> - if <code>port</code> is negative or
+               greater than <code>65535</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getInstance(javax.security.auth.Subject, javax.security.auth.x500.X500Principal[], java.lang.String, int)"><!-- --></A><H3>
+getInstance</H3>
+<PRE>
+public static <A HREF="../../../../net/jini/jeri/ssl/SslServerEndpoint.html" title="class in net.jini.jeri.ssl">SslServerEndpoint</A> <B>getInstance</B>(<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">Subject</A>&nbsp;serverSubject,
+                                            <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/security/auth/x500/X500Principal.html" title="class or interface in javax.security.auth.x500">X500Principal</A>[]&nbsp;serverPrincipals,
+                                            <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;serverHost,
+                                            int&nbsp;port)</PRE>
+<DL>
+<DD>Returns a TLS/SSL server endpoint for the specified server subject,
+ server principals, server host, and port. Uses <code>null</code> socket
+ factories to create default sockets. A <code>serverSubject</code> of
+ <code>null</code> uses the subject associated with the current access
+ control context. A <code>serverPrincipals</code> of <code>null</code>
+ uses the principals in the subject with appropriate public and private
+ credentials for which the caller has <A HREF="../../../../net/jini/security/AuthenticationPermission.html" title="class in net.jini.security"><CODE>AuthenticationPermission</CODE></A> to
+ listen; otherwise that argument specifies the principals to use, or that
+ the server should be anonymous if the argument has no elements.  If
+ non-<code>null</code>, the value of <code>serverPrincipals</code> is
+ neither retained nor modified; subsequent changes to that argument have
+ no effect on the instance created. A <code>serverHost</code> of
+ <code>null</code> requests that <A HREF="../../../../net/jini/jeri/ssl/SslServerEndpoint.html#enumerateListenEndpoints(net.jini.jeri.ServerEndpoint.ListenContext)"><CODE>enumerateListenEndpoints</CODE></A> compute the default server host. A
+ <code>port</code> of <code>0</code> requests listening on any free port.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>serverSubject</CODE> - the <code>Subject</code> to use for authenticating
+              the server or <code>null</code> to use the current subject<DD><CODE>serverPrincipals</CODE> - the principals to use for authenticating the
+              server, or <code>null</code> to use any available principals in
+              the subject<DD><CODE>serverHost</CODE> - the name that clients should use to connect to this
+              server, or <code>null</code> to use the default<DD><CODE>port</CODE> - the port on which to listen for connections, or
+              <code>0</code> for any free port
+<DT><B>Returns:</B><DD>an <code>SslServerEndpoint</code> instance
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html" title="class or interface in java.lang">IllegalArgumentException</A></CODE> - if <code>port</code> is negative or
+               greater than <code>65535</code>
+<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>serverPrincipals</code> is not
+               <code>null</code> and any of its elements are <code>null</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getInstance(javax.security.auth.Subject, javax.security.auth.x500.X500Principal[], java.lang.String, int, javax.net.SocketFactory, javax.net.ServerSocketFactory)"><!-- --></A><H3>
+getInstance</H3>
+<PRE>
+public static <A HREF="../../../../net/jini/jeri/ssl/SslServerEndpoint.html" title="class in net.jini.jeri.ssl">SslServerEndpoint</A> <B>getInstance</B>(<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">Subject</A>&nbsp;serverSubject,
+                                            <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/security/auth/x500/X500Principal.html" title="class or interface in javax.security.auth.x500">X500Principal</A>[]&nbsp;serverPrincipals,
+                                            <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;serverHost,
+                                            int&nbsp;port,
+                                            <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/net/SocketFactory.html" title="class or interface in javax.net">SocketFactory</A>&nbsp;socketFactory,
+                                            <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/net/ServerSocketFactory.html" title="class or interface in javax.net">ServerSocketFactory</A>&nbsp;serverSocketFactory)</PRE>
+<DL>
+<DD>Returns a TLS/SSL server endpoint for the specified server subject,
+ server principals, server host, port, and socket factories. A
+ <code>serverSubject</code> of <code>null</code> uses the subject
+ associated with the current access control context. A
+ <code>serverPrincipals</code> of <code>null</code> uses the principals
+ in the subject with appropriate public and private credentials for which
+ the caller has <A HREF="../../../../net/jini/security/AuthenticationPermission.html" title="class in net.jini.security"><CODE>AuthenticationPermission</CODE></A> to listen; otherwise
+ that argument specifies the principals to use, or that the server should
+ be anonymous if the argument has no elements. If non-<code>null</code>,
+ the value of <code>serverPrincipals</code> is neither retained nor
+ modified; subsequent changes to that argument have no effect on the
+ instance created. A <code>serverHost</code> of <code>null</code>
+ requests that <A HREF="../../../../net/jini/jeri/ssl/SslServerEndpoint.html#enumerateListenEndpoints(net.jini.jeri.ServerEndpoint.ListenContext)"><CODE>enumerateListenEndpoints</CODE></A>
+ compute the default server host. A <code>port</code> of <code>0</code>
+ requests listening on any free port. A <code>socketFactory</code> of
+ <code>null</code> uses default sockets in the associated <A HREF="../../../../net/jini/jeri/ssl/SslEndpoint.html" title="class in net.jini.jeri.ssl"><CODE>SslEndpoint</CODE></A>. A <code>serverSocketFactory</code> of <code>null</code>
+ uses default server sockets.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>serverSubject</CODE> - the <code>Subject</code> to use for authenticating
+              the server or <code>null</code> to use the current subject<DD><CODE>serverPrincipals</CODE> - the principals to use for authenticating the
+              server, or <code>null</code> to use any available principals in
+              the subject<DD><CODE>serverHost</CODE> - the name that clients should use to connect to this
+              server, or <code>null</code> to use the default<DD><CODE>port</CODE> - the port on which to listen for connections, or
+              <code>0</code> for any free port<DD><CODE>socketFactory</CODE> - the socket factory for use in the associated
+              <code>SslEndpoint</code> instances, or <code>null</code><DD><CODE>serverSocketFactory</CODE> - the server socket factory, or
+              <code>null</code>
+<DT><B>Returns:</B><DD>an <code>SslServerEndpoint</code> instance
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html" title="class or interface in java.lang">IllegalArgumentException</A></CODE> - if <code>port</code> is negative or
+               greater than <code>65535</code>
+<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>serverPrincipals</code> is not
+               <code>null</code> and any of its elements are <code>null</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getHost()"><!-- --></A><H3>
+getHost</H3>
+<PRE>
+public <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> <B>getHost</B>()</PRE>
+<DL>
+<DD>Returns the host name that will be used in <A HREF="../../../../net/jini/jeri/ssl/SslEndpoint.html" title="class in net.jini.jeri.ssl"><CODE>SslEndpoint</CODE></A> instances
+ created by listening on this object, or <code>null</code> if <A HREF="../../../../net/jini/jeri/ssl/SslServerEndpoint.html#enumerateListenEndpoints(net.jini.jeri.ServerEndpoint.ListenContext)"><CODE>enumerateListenEndpoints</CODE></A> will use the default
+ server host.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the host name to use in <code>SslEndpoint</code> instances
+               created by listening on this object, or <code>null</code> if
+               using the default</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getPort()"><!-- --></A><H3>
+getPort</H3>
+<PRE>
+public int <B>getPort</B>()</PRE>
+<DL>
+<DD>Returns the TCP port on which this object listens for connections, or
+ <code>0</code> if it selects a free port.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the TCP port on which this object listens for connections, or
+               <code>0</code> if it selects a free port</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getPrincipals()"><!-- --></A><H3>
+getPrincipals</H3>
+<PRE>
+public <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/Set.html" title="class or interface in java.util">Set</A> <B>getPrincipals</B>()</PRE>
+<DL>
+<DD>Returns an immutable set of the principals that this instance uses for
+ authentication, or <code>null</code> if it is anonymous.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an immutable set of the principals or <code>null</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSocketFactory()"><!-- --></A><H3>
+getSocketFactory</H3>
+<PRE>
+public <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/net/SocketFactory.html" title="class or interface in javax.net">SocketFactory</A> <B>getSocketFactory</B>()</PRE>
+<DL>
+<DD>Returns the socket factory that the associated <A HREF="../../../../net/jini/jeri/ssl/SslEndpoint.html" title="class in net.jini.jeri.ssl"><CODE>SslEndpoint</CODE></A>
+ instances created by listening on this server endpoint use to create
+ <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/net/Socket.html" title="class or interface in java.net"><CODE>Socket</CODE></A> instances, or <code>null</code> if they use default
+ sockets.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the socket factory that associated endpoints use to create
+               sockets, or <code>null</code> if they use default sockets</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getServerSocketFactory()"><!-- --></A><H3>
+getServerSocketFactory</H3>
+<PRE>
+public <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/net/ServerSocketFactory.html" title="class or interface in javax.net">ServerSocketFactory</A> <B>getServerSocketFactory</B>()</PRE>
+<DL>
+<DD>Returns the server socket factory that this server endpoint uses to
+ create <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/net/ServerSocket.html" title="class or interface in java.net"><CODE>ServerSocket</CODE></A> instances, or <code>null</code> if it uses
+ default server sockets.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the server socket factory that this server endpoint uses to
+               create server sockets, or <code>null</code> if it uses default
+               server sockets</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toString()"><!-- --></A><H3>
+toString</H3>
+<PRE>
+public <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> <B>toString</B>()</PRE>
+<DL>
+<DD>Returns a string representation of this object.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><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></CODE> in class <CODE><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></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="checkConstraints(net.jini.core.constraint.InvocationConstraints)"><!-- --></A><H3>
+checkConstraints</H3>
+<PRE>
+public <A HREF="../../../../net/jini/core/constraint/InvocationConstraints.html" title="class in net.jini.core.constraint">InvocationConstraints</A> <B>checkConstraints</B>(<A HREF="../../../../net/jini/core/constraint/InvocationConstraints.html" title="class in net.jini.core.constraint">InvocationConstraints</A>&nbsp;constraints)
+                                       throws <A HREF="../../../../net/jini/io/UnsupportedConstraintException.html" title="class in net.jini.io">UnsupportedConstraintException</A></PRE>
+<DL>
+<DD>Checks that it is possible to receive requests that either
+ fully or partially satisfy the specified requirements, and
+ returns any constraints that must be fully or partially
+ implemented by higher layers in order to fully satisfy all of
+ the specified requirements. <p>
+
+ This implementation only returns <A HREF="../../../../net/jini/core/constraint/Integrity.html#YES"><CODE>Integrity.YES</CODE></A> constraints.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../net/jini/jeri/ServerCapabilities.html#checkConstraints(net.jini.core.constraint.InvocationConstraints)">checkConstraints</A></CODE> in interface <CODE><A HREF="../../../../net/jini/jeri/ServerCapabilities.html" title="interface in net.jini.jeri">ServerCapabilities</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>constraints</CODE> - the constraints that must be supported
+<DT><B>Returns:</B><DD>the constraints that must be at least partially
+ implemented by higher layers
+<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 current security context does not have
+               the permissions necessary to perform this operation
+<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>constraints</code> is
+               <code>null</code>
+<DD><CODE><A HREF="../../../../net/jini/io/UnsupportedConstraintException.html" title="class in net.jini.io">UnsupportedConstraintException</A></CODE> - if the transport layer
+ aspects of any of the specified requirements are not supported
+ by this instance (either in general or in the current security
+ context)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="hashCode()"><!-- --></A><H3>
+hashCode</H3>
+<PRE>
+public int <B>hashCode</B>()</PRE>
+<DL>
+<DD>Returns a hash code value for this object.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><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></CODE> in class <CODE><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></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="equals(java.lang.Object)"><!-- --></A><H3>
+equals</H3>
+<PRE>
+public boolean <B>equals</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;object)</PRE>
+<DL>
+<DD>Two instances of this class are equal if they have server subjects that
+ compare equal using <code>==</code>; have server principals that are
+ either both <code>null</code> or are equal when compared as the elements
+ of a <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/Set.html" title="class or interface in java.util"><CODE>Set</CODE></A>; have the same values for server host and port; have
+ socket factories that are either both <code>null</code>, or have the
+ same actual class and are equal; and have server socket factories
+ that are either both <code>null</code>, or have the same actual class
+ and are equal.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><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></CODE> in class <CODE><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></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="enumerateListenEndpoints(net.jini.jeri.ServerEndpoint.ListenContext)"><!-- --></A><H3>
+enumerateListenEndpoints</H3>
+<PRE>
+public <A HREF="../../../../net/jini/jeri/Endpoint.html" title="interface in net.jini.jeri">Endpoint</A> <B>enumerateListenEndpoints</B>(<A HREF="../../../../net/jini/jeri/ServerEndpoint.ListenContext.html" title="interface in net.jini.jeri">ServerEndpoint.ListenContext</A>&nbsp;listenContext)
+                                  throws <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/IOException.html" title="class or interface in java.io">IOException</A></PRE>
+<DL>
+<DD>Passes the <A HREF="../../../../net/jini/jeri/ServerEndpoint.ListenEndpoint.html" title="interface in net.jini.jeri"><CODE>ListenEndpoint</CODE></A> for this <code>SslServerEndpoint</code> to
+ <code>listenContext</code>, which will ensure an active listen
+ operation on the endpoint, and returns an <code>SslEndpoint</code>
+ instance corresponding to the listen operation chosen by
+ <code>listenContext</code>. <p>
+
+ If this server endpoint's server host is <code>null</code>, then the
+ endpoint returned will contain the default server host. This method
+ computes the default by invoking <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/net/InetAddress.html#getLocalHost()" title="class or interface in java.net"><CODE>InetAddress.getLocalHost</CODE></A> to obtain an <code>InetAddress</code> for the
+ local host. If <code>InetAddress.getLocalHost</code> throws an
+ exception, this method throws that exception. The default host name will
+ be the string returned by invoking <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/net/InetAddress.html#getHostAddress()" title="class or interface in java.net"><CODE>getHostAddress</CODE></A> on that <code>InetAddress</code>. If there is a security
+ manager, its <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/SecurityManager.html#checkConnect(java.lang.String, int)" title="class or interface in java.lang"><CODE>checkConnect</CODE></A> method will be invoked with the string returned by
+ invoking <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/net/InetAddress.html#getHostName()" title="class or interface in java.net"><CODE>getHostName</CODE></A> on that same
+ <code>InetAddress</code> as the host argument and <code>-1</code> as the
+ port argument; this could result in a
+ <code>SecurityException</code>. <p>
+
+ This method invokes <code>addListenEndpoint</code> on
+ <code>listenContext</code> once, passing a <code>ListenEndpoint</code>
+ as described below.  If <code>addListenEndpoint</code> throws an
+ exception, then this method throws that exception.  Otherwise, this
+ method returns an <code>SslEndpoint</code> instance with the host name
+ described above, the TCP port number bound by the listen operation
+ represented by the <A HREF="../../../../net/jini/jeri/ServerEndpoint.ListenHandle.html" title="interface in net.jini.jeri"><CODE>ListenHandle</CODE></A> returned by <code>addListenEndpoint</code>, and the same
+ <code>SocketFactory</code> as this <code>SslServerEndpoint</code>. <p>
+
+ The <code>ListenEndpoint</code> passed to
+ <code>addListenEndpoint</code> represents the server subject, server
+ principals, TCP port number, and <code>ServerSocketFactory</code> of
+ this <code>SslServerEndpoint</code>.  Its methods behave as follows: <p>
+
+ <A HREF="../../../../net/jini/jeri/ServerEndpoint.ListenEndpoint.html#listen(net.jini.jeri.RequestDispatcher)"><CODE>ListenHandle
+ listen(RequestDispatcher)</CODE></A>:
+
+ <blockquote>
+
+ Listens for requests received on this endpoint's TCP port, dispatching
+ them to the supplied <code>RequestDispatcher</code> in the form of
+ <A HREF="../../../../net/jini/jeri/InboundRequest.html" title="interface in net.jini.jeri"><CODE>InboundRequest</CODE></A> instances. <p>
+
+ When the implementation of this method needs to create a new
+ <code>ServerSocket</code>, it will do so by invoking one of the
+ <code>createServerSocket</code> methods that returns a bound server
+ socket on the contained <code>ServerSocketFactory</code> if
+ non-<code>null</code>, or it will create a <code>ServerSocket</code>
+ directly otherwise. <p>
+
+ If there is a security manager, its <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/SecurityManager.html#checkListen(int)" title="class or interface in java.lang"><CODE>checkListen</CODE></A> method will be invoked with this endpoint's TCP port; this
+ could result in a <code>SecurityException</code>. In addition, for each
+ server principal in this endpoint, the security manager's <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/SecurityManager.html#checkPermission(java.security.Permission)" title="class or interface in java.lang"><CODE>checkPermission</CODE></A> method will be invoked
+ with an <A HREF="../../../../net/jini/security/AuthenticationPermission.html" title="class in net.jini.security"><CODE>AuthenticationPermission</CODE></A> containing the server
+ principal and the <code>listen</code> action; this could also result in
+ a <code>SecurityException</code>.  Furthermore, before a given
+ <code>InboundRequest</code> gets dispatched to the supplied request
+ dispatcher, the security manager's <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/SecurityManager.html#checkAccept(java.lang.String, int)" title="class or interface in java.lang"><CODE>checkAccept</CODE></A> method must have been successfully invoked in the security
+ context of this <code>listen</code> invocation with the remote IP
+ address and port of the <code>Socket</code> used to receive the
+ request, and if the server authenticated itself to the client, the
+ security manager's <code>checkPermission</code> method must have been
+ successfully invoked in the same context with an
+ <code>AuthenticationPermission</code> containing that authenticated
+ server principal as local principal, the client's authenticated
+ principal (if any) as peer principal, and the <code>accept</code>
+ action. The <code>checkPermissions</code> method of the dispatched
+ <code>InboundRequest</code> also performs these latter security checks.
+ (Note that in some cases, the implementation may carry out some of
+ these security checks indirectly, such as through invocations of
+ <code>ServerSocket</code>'s constructors or <code>accept</code>
+ method.) <p>
+
+ Requests will be dispatched in 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> wrapped by a
+ <A HREF="../../../../net/jini/security/SecurityContext.html" title="interface in net.jini.security"><CODE>SecurityContext</CODE></A> obtained when this method was invoked, with the
+ <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> of that <code>SecurityContext</code> in
+ effect. <p>
+
+ Dispatched requests will implement <A HREF="../../../../net/jini/jeri/InboundRequest.html#populateContext(java.util.Collection)"><CODE>populateContext</CODE></A> to populate the given
+ collection with an element that implements the <A HREF="../../../../net/jini/io/context/ClientHost.html" title="interface in net.jini.io.context"><CODE>ClientHost</CODE></A>
+ interface, and an element that implements the <A HREF="../../../../net/jini/io/context/ClientSubject.html" title="interface in net.jini.io.context"><CODE>ClientSubject</CODE></A>
+ interface. The <code>ClientHost</code> element implements <A HREF="../../../../net/jini/io/context/ClientHost.html#getClientHost()"><CODE>getClientHost</CODE></A> to return the IP address of the
+ <code>Socket</code> that the request was received over (see <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/net/Socket.html#getInetAddress()" title="class or interface in java.net"><CODE>Socket.getInetAddress()</CODE></A>). <p>
+
+ Throws <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/IOException.html" title="class or interface in java.io"><CODE>IOException</CODE></A> if an I/O exception occurs while performing
+ this operation, such as if the TCP port is already in use. <p>
+
+ Throws <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/SecurityException.html" title="class or interface in java.lang"><CODE>SecurityException</CODE></A> if there is a security manager and an
+ invocation of its <code>checkListen</code> or
+ <code>checkPermission</code> method fails. <p>
+
+ Throws <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/NullPointerException.html" title="class or interface in java.lang"><CODE>NullPointerException</CODE></A> if <code>requestDispatcher</code>
+ is <code>null</code>
+
+ </blockquote>
+
+ <A HREF="../../../../net/jini/jeri/ServerEndpoint.ListenEndpoint.html#checkPermissions()"><CODE>void checkPermissions()</CODE></A>:
+
+ <blockquote>
+
+ Verifies that the current security context has all of the security
+ permissions necessary to listen for requests on this endpoint. <p>
+
+ If there is a security manager, its <code>checkListen</code> method
+ will be invoked with this endpoint's TCP port; this could result in a
+ <code>SecurityException</code>. In addition, for each server principal
+ in this endpoint, the security manager's <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/SecurityManager.html#checkPermission(java.security.Permission)" title="class or interface in java.lang"><CODE>checkPermission</CODE></A> method will be invoked
+ with an <A HREF="../../../../net/jini/security/AuthenticationPermission.html" title="class in net.jini.security"><CODE>AuthenticationPermission</CODE></A> containing the server
+ principal and the <code>listen</code> action; this could also result in
+ a <code>SecurityException</code>. <p>
+
+ Throws <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/SecurityException.html" title="class or interface in java.lang"><CODE>SecurityException</CODE></A> if there is a security manager and an
+ invocation of its <code>checkListen</code> or
+ <code>checkPermission</code> method fails.
+
+ </blockquote>
+
+ <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"><CODE>boolean equals(Object)</CODE></A>:
+
+ <blockquote>
+
+ Compares the specified object with this <code>ListenEndpoint</code> for
+ equality. <p>
+
+ This method returns <code>true</code> if and only if the specified
+ object is also a <code>ListenEndpoint</code> produced by an
+ <code>SslServerEndpoint</code>, and the two listen endpoints both have
+ server subjects that compare equal using <code>==</code>; have server
+ principals that are either both <code>null</code> or are equal when
+ compared as the elements of a <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/Set.html" title="class or interface in java.util"><CODE>Set</CODE></A>; have the same values for TCP
+ port; and have server socket factories that are either both
+ <code>null</code>, or have the same actual class and are equal.
+
+ </blockquote>
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../net/jini/jeri/ServerEndpoint.html#enumerateListenEndpoints(net.jini.jeri.ServerEndpoint.ListenContext)">enumerateListenEndpoints</A></CODE> in interface <CODE><A HREF="../../../../net/jini/jeri/ServerEndpoint.html" title="interface in net.jini.jeri">ServerEndpoint</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>listenContext</CODE> - the <code>ListenContext</code> to pass
+ this <code>ServerEndpoint</code>'s <code>ListenEndpoint</code>
+ instances to
+<DT><B>Returns:</B><DD>the <code>Endpoint</code> instance for sending requests
+ to this <code>ServerEndpoint</code>'s communication endpoints
+ being listened on
+<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 there is a security manager, and either its
+               <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/SecurityManager.html#checkListen(int)" title="class or interface in java.lang"><CODE>checkListen</CODE></A> method fails,
+               or <code>serverHost</code> is <code>null</code> and the security
+               manager's <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/SecurityManager.html#checkConnect(java.lang.String, int)" title="class or interface in java.lang"><CODE>checkConnect</CODE></A>
+               method fails; or if the calling thread does not have permission
+               to authenticate as each of the endpoint's server principals when
+               listening for connections
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html" title="class or interface in java.lang">IllegalArgumentException</A></CODE> - if an invocation of the
+               <code>addListenEndpoint</code> method on the supplied
+               <code>ListenContext</code> returns a <code>ListenCookie</code>
+               that does not correspond to the <code>ListenEndpoint</code> that
+               was passed to it
+<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>listenContext</code> is
+               <code>null</code>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/net/UnknownHostException.html" title="class or interface in java.net">UnknownHostException</A></CODE> - if this instance's server host 
+               is <code>null</code> and <code>InetAddress.getLocalHost</code>
+               throws an <code>UnknownHostException</code>
+<DD><CODE><A HREF="../../../../net/jini/io/UnsupportedConstraintException.html" title="class in net.jini.io">UnsupportedConstraintException</A></CODE> - if the server subject is missing
+               any of the endpoint's server principals or the associated
+               credentials
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/IOException.html" title="class or interface in java.io">IOException</A></CODE> - if an I/O exception occurs while attempting
+ to listen for requests on the communication endpoints
+ represented by this <code>ServerEndpoint</code>.  This could
+ occur, for example, if an I/O resource associated with one of
+ the communication endpoints is already in exclusive use, or if
+ there are insufficient I/O resources for the operation.</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/SslServerEndpoint.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/jeri/ssl/SslEndpoint.html" title="class in net.jini.jeri.ssl"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../../net/jini/jeri/ssl/SslTrustVerifier.html" title="class in net.jini.jeri.ssl"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?net/jini/jeri/ssl/SslServerEndpoint.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="SslServerEndpoint.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>