blob: 7e5f1ee0ff49c4d675e6d5c6582d8983980b46c6 [file] [log] [blame]
<!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_08) on Mon Oct 02 11:45:15 GMT+09:00 2006 -->
<TITLE>
SSLFilter (Apache MINA API Documentation)
</TITLE>
<META NAME="keywords" CONTENT="org.apache.mina.filter.SSLFilter class">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
parent.document.title="SSLFilter (Apache MINA 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/SSLFilter.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="../../../../org/apache/mina/filter/ReferenceCountingIoFilter.html" title="class in org.apache.mina.filter"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/mina/filter/SSLFilter.SSLFilterMessage.html" title="class in org.apache.mina.filter"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../index.html?org/apache/mina/filter/SSLFilter.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="SSLFilter.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;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&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">
org.apache.mina.filter</FONT>
<BR>
Class SSLFilter</H2>
<PRE>
<A HREF="http://java.sun.com/j2se/1.5.0/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 "><A HREF="../../../../org/apache/mina/common/IoFilterAdapter.html" title="class in org.apache.mina.common">org.apache.mina.common.IoFilterAdapter</A>
<IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.apache.mina.filter.SSLFilter</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../org/apache/mina/common/IoFilter.html" title="interface in org.apache.mina.common">IoFilter</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public class <B>SSLFilter</B><DT>extends <A HREF="../../../../org/apache/mina/common/IoFilterAdapter.html" title="class in org.apache.mina.common">IoFilterAdapter</A></DL>
</PRE>
<P>
An SSL filter that encrypts and decrypts the data exchanged in the session.
This filter uses an <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLEngine.html" title="class or interface in javax.net.ssl"><CODE>SSLEngine</CODE></A> which was introduced in Java 5, so
Java version 5 or above is mandatory to use this filter. And please note that
this filter only works for TCP/IP connections.
<p>
This filter logs debug information using <A HREF="../../../../org/apache/mina/util/SessionLog.html" title="class in org.apache.mina.util"><CODE>SessionLog</CODE></A>.
<h2>Implementing StartTLS</h2>
<p>
You can use <A HREF="../../../../org/apache/mina/filter/SSLFilter.html#DISABLE_ENCRYPTION_ONCE"><CODE>DISABLE_ENCRYPTION_ONCE</CODE></A> attribute to implement StartTLS:
<pre>
public void messageReceived(IoSession session, Object message) {
if (message instanceof MyStartTLSRequest) {
// Insert SSLFilter to get ready for handshaking
session.getFilterChain().addFirst(sslFilter);
// Disable encryption temporarilly.
// This attribute will be removed by SSLFilter
// inside the Session.write() call below.
session.setAttribute(SSLFilter.DISABLE_ENCRYPTION_ONCE, Boolean.TRUE);
// Write StartTLSResponse which won't be encrypted.
session.write(new MyStartTLSResponse(OK));
// Now DISABLE_ENCRYPTION_ONCE attribute is cleared.
assert session.getAttribute(SSLFilter.DISABLE_ENCRYPTION_ONCE) == null;
}
}
</pre>
<P>
<P>
<DL>
<DT><B>Version:</B></DT>
<DD>$Rev: 451854 $, $Date: 2006-10-02 11:30:11 +0900 (월, 02 10월 2006) $</DD>
<DT><B>Author:</B></DT>
<DD>The Apache Directory Project (mina-dev@directory.apache.org)</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>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;class</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/mina/filter/SSLFilter.SSLFilterMessage.html" title="class in org.apache.mina.filter">SSLFilter.SSLFilterMessage</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A message that is sent from <A HREF="../../../../org/apache/mina/filter/SSLFilter.html" title="class in org.apache.mina.filter"><CODE>SSLFilter</CODE></A> when the connection became
secure or is not secure anymore.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="nested_classes_inherited_from_class_org.apache.mina.common.IoFilter"><!-- --></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 org.apache.mina.common.<A HREF="../../../../org/apache/mina/common/IoFilter.html" title="interface in org.apache.mina.common">IoFilter</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../org/apache/mina/common/IoFilter.NextFilter.html" title="interface in org.apache.mina.common">IoFilter.NextFilter</A>, <A HREF="../../../../org/apache/mina/common/IoFilter.WriteRequest.html" title="class in org.apache.mina.common">IoFilter.WriteRequest</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<!-- =========== FIELD SUMMARY =========== -->
<A NAME="field_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>Field 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.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/mina/filter/SSLFilter.html#DISABLE_ENCRYPTION_ONCE">DISABLE_ENCRYPTION_ONCE</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A session attribute key that makes next one write request bypass
this filter (not encrypting the data).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../org/apache/mina/filter/SSLFilter.SSLFilterMessage.html" title="class in org.apache.mina.filter">SSLFilter.SSLFilterMessage</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/mina/filter/SSLFilter.html#SESSION_SECURED">SESSION_SECURED</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A special message object which is emitted with a <A HREF="../../../../org/apache/mina/common/IoHandler.html#messageReceived(org.apache.mina.common.IoSession, java.lang.Object)"><CODE>IoHandler.messageReceived(IoSession, Object)</CODE></A>
event when the session is secured and its <A HREF="../../../../org/apache/mina/filter/SSLFilter.html#USE_NOTIFICATION"><CODE>USE_NOTIFICATION</CODE></A>
attribute is set.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../org/apache/mina/filter/SSLFilter.SSLFilterMessage.html" title="class in org.apache.mina.filter">SSLFilter.SSLFilterMessage</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/mina/filter/SSLFilter.html#SESSION_UNSECURED">SESSION_UNSECURED</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A special message object which is emitted with a <A HREF="../../../../org/apache/mina/common/IoHandler.html#messageReceived(org.apache.mina.common.IoSession, java.lang.Object)"><CODE>IoHandler.messageReceived(IoSession, Object)</CODE></A>
event when the session is not secure anymore and its <A HREF="../../../../org/apache/mina/filter/SSLFilter.html#USE_NOTIFICATION"><CODE>USE_NOTIFICATION</CODE></A>
attribute is set.</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.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/mina/filter/SSLFilter.html#SSL_SESSION">SSL_SESSION</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A session attribute key that stores underlying <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLSession.html" title="class or interface in javax.net.ssl"><CODE>SSLSession</CODE></A>
for each session.</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.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/mina/filter/SSLFilter.html#USE_NOTIFICATION">USE_NOTIFICATION</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A session attribute key that makes this filter to emit a
<A HREF="../../../../org/apache/mina/common/IoHandler.html#messageReceived(org.apache.mina.common.IoSession, java.lang.Object)"><CODE>IoHandler.messageReceived(IoSession, Object)</CODE></A> event with a
special message (<A HREF="../../../../org/apache/mina/filter/SSLFilter.html#SESSION_SECURED"><CODE>SESSION_SECURED</CODE></A> or <A HREF="../../../../org/apache/mina/filter/SSLFilter.html#SESSION_UNSECURED"><CODE>SESSION_UNSECURED</CODE></A>).</TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<A NAME="constructor_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>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../org/apache/mina/filter/SSLFilter.html#SSLFilter(javax.net.ssl.SSLContext)">SSLFilter</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLContext.html" title="class or interface in javax.net.ssl">SSLContext</A>&nbsp;sslContext)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new SSL filter using the specified <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLContext.html" title="class or interface in javax.net.ssl"><CODE>SSLContext</CODE></A>.</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;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/mina/filter/SSLFilter.html#filterClose(org.apache.mina.common.IoFilter.NextFilter, org.apache.mina.common.IoSession)">filterClose</A></B>(<A HREF="../../../../org/apache/mina/common/IoFilter.NextFilter.html" title="interface in org.apache.mina.common">IoFilter.NextFilter</A>&nbsp;nextFilter,
<A HREF="../../../../org/apache/mina/common/IoSession.html" title="interface in org.apache.mina.common">IoSession</A>&nbsp;session)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Filters <A HREF="../../../../org/apache/mina/common/IoSession.html#close()"><CODE>IoSession.close()</CODE></A> method invocation.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/mina/filter/SSLFilter.html#filterWrite(org.apache.mina.common.IoFilter.NextFilter, org.apache.mina.common.IoSession, org.apache.mina.common.IoFilter.WriteRequest)">filterWrite</A></B>(<A HREF="../../../../org/apache/mina/common/IoFilter.NextFilter.html" title="interface in org.apache.mina.common">IoFilter.NextFilter</A>&nbsp;nextFilter,
<A HREF="../../../../org/apache/mina/common/IoSession.html" title="interface in org.apache.mina.common">IoSession</A>&nbsp;session,
<A HREF="../../../../org/apache/mina/common/IoFilter.WriteRequest.html" title="class in org.apache.mina.common">IoFilter.WriteRequest</A>&nbsp;writeRequest)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Filters <A HREF="../../../../org/apache/mina/common/IoSession.html#write(java.lang.Object)"><CODE>IoSession.write(Object)</CODE></A> method invocation.</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.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/mina/filter/SSLFilter.html#getEnabledCipherSuites()">getEnabledCipherSuites</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the list of cipher suites to be enabled when <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLEngine.html" title="class or interface in javax.net.ssl"><CODE>SSLEngine</CODE></A>
is initialized.</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.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/mina/filter/SSLFilter.html#getEnabledProtocols()">getEnabledProtocols</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the list of protocols to be enabled when <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLEngine.html" title="class or interface in javax.net.ssl"><CODE>SSLEngine</CODE></A>
is initialized.</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.5.0/docs/api/javax/net/ssl/SSLSession.html" title="class or interface in javax.net.ssl">SSLSession</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/mina/filter/SSLFilter.html#getSSLSession(org.apache.mina.common.IoSession)">getSSLSession</A></B>(<A HREF="../../../../org/apache/mina/common/IoSession.html" title="interface in org.apache.mina.common">IoSession</A>&nbsp;session)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the underlying <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLSession.html" title="class or interface in javax.net.ssl"><CODE>SSLSession</CODE></A> for the specified session.</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="../../../../org/apache/mina/filter/SSLFilter.html#isNeedClientAuth()">isNeedClientAuth</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <tt>true</tt> if the engine will <em>require</em> client authentication.</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="../../../../org/apache/mina/filter/SSLFilter.html#isSSLStarted(org.apache.mina.common.IoSession)">isSSLStarted</A></B>(<A HREF="../../../../org/apache/mina/common/IoSession.html" title="interface in org.apache.mina.common">IoSession</A>&nbsp;session)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <tt>true</tt> if and only if the specified <tt>session</tt> is
encrypted/decrypted over SSL/TLS currently.</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="../../../../org/apache/mina/filter/SSLFilter.html#isUseClientMode()">isUseClientMode</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <tt>true</tt> if the engine is set to use client mode
when handshaking.</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="../../../../org/apache/mina/filter/SSLFilter.html#isWantClientAuth()">isWantClientAuth</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <tt>true</tt> if the engine will <em>request</em> client authentication.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/mina/filter/SSLFilter.html#messageReceived(org.apache.mina.common.IoFilter.NextFilter, org.apache.mina.common.IoSession, java.lang.Object)">messageReceived</A></B>(<A HREF="../../../../org/apache/mina/common/IoFilter.NextFilter.html" title="interface in org.apache.mina.common">IoFilter.NextFilter</A>&nbsp;nextFilter,
<A HREF="../../../../org/apache/mina/common/IoSession.html" title="interface in org.apache.mina.common">IoSession</A>&nbsp;session,
<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>&nbsp;message)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Filters <A HREF="../../../../org/apache/mina/common/IoHandler.html#messageReceived(org.apache.mina.common.IoSession, java.lang.Object)"><CODE>IoHandler.messageReceived(IoSession,Object)</CODE></A>
event.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/mina/filter/SSLFilter.html#messageSent(org.apache.mina.common.IoFilter.NextFilter, org.apache.mina.common.IoSession, java.lang.Object)">messageSent</A></B>(<A HREF="../../../../org/apache/mina/common/IoFilter.NextFilter.html" title="interface in org.apache.mina.common">IoFilter.NextFilter</A>&nbsp;nextFilter,
<A HREF="../../../../org/apache/mina/common/IoSession.html" title="interface in org.apache.mina.common">IoSession</A>&nbsp;session,
<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>&nbsp;message)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Filters <A HREF="../../../../org/apache/mina/common/IoHandler.html#messageSent(org.apache.mina.common.IoSession, java.lang.Object)"><CODE>IoHandler.messageSent(IoSession,Object)</CODE></A>
event.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/mina/filter/SSLFilter.html#onPostAdd(org.apache.mina.common.IoFilterChain, java.lang.String, org.apache.mina.common.IoFilter.NextFilter)">onPostAdd</A></B>(<A HREF="../../../../org/apache/mina/common/IoFilterChain.html" title="interface in org.apache.mina.common">IoFilterChain</A>&nbsp;parent,
<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name,
<A HREF="../../../../org/apache/mina/common/IoFilter.NextFilter.html" title="interface in org.apache.mina.common">IoFilter.NextFilter</A>&nbsp;nextFilter)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked after this filter is added to the specified <tt>parent</tt>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/mina/filter/SSLFilter.html#onPreAdd(org.apache.mina.common.IoFilterChain, java.lang.String, org.apache.mina.common.IoFilter.NextFilter)">onPreAdd</A></B>(<A HREF="../../../../org/apache/mina/common/IoFilterChain.html" title="interface in org.apache.mina.common">IoFilterChain</A>&nbsp;parent,
<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name,
<A HREF="../../../../org/apache/mina/common/IoFilter.NextFilter.html" title="interface in org.apache.mina.common">IoFilter.NextFilter</A>&nbsp;nextFilter)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked before this filter is added to the specified <tt>parent</tt>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/mina/filter/SSLFilter.html#onPreRemove(org.apache.mina.common.IoFilterChain, java.lang.String, org.apache.mina.common.IoFilter.NextFilter)">onPreRemove</A></B>(<A HREF="../../../../org/apache/mina/common/IoFilterChain.html" title="interface in org.apache.mina.common">IoFilterChain</A>&nbsp;parent,
<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name,
<A HREF="../../../../org/apache/mina/common/IoFilter.NextFilter.html" title="interface in org.apache.mina.common">IoFilter.NextFilter</A>&nbsp;nextFilter)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invoked before this filter is removed from the specified <tt>parent</tt>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/mina/filter/SSLFilter.html#sessionClosed(org.apache.mina.common.IoFilter.NextFilter, org.apache.mina.common.IoSession)">sessionClosed</A></B>(<A HREF="../../../../org/apache/mina/common/IoFilter.NextFilter.html" title="interface in org.apache.mina.common">IoFilter.NextFilter</A>&nbsp;nextFilter,
<A HREF="../../../../org/apache/mina/common/IoSession.html" title="interface in org.apache.mina.common">IoSession</A>&nbsp;session)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Filters <A HREF="../../../../org/apache/mina/common/IoHandler.html#sessionClosed(org.apache.mina.common.IoSession)"><CODE>IoHandler.sessionClosed(IoSession)</CODE></A> event.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/mina/filter/SSLFilter.html#setEnabledCipherSuites(java.lang.String[])">setEnabledCipherSuites</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[]&nbsp;cipherSuites)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the list of cipher suites to be enabled when <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLEngine.html" title="class or interface in javax.net.ssl"><CODE>SSLEngine</CODE></A>
is initialized.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/mina/filter/SSLFilter.html#setEnabledProtocols(java.lang.String[])">setEnabledProtocols</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[]&nbsp;protocols)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the list of protocols to be enabled when <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLEngine.html" title="class or interface in javax.net.ssl"><CODE>SSLEngine</CODE></A>
is initialized.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/mina/filter/SSLFilter.html#setNeedClientAuth(boolean)">setNeedClientAuth</A></B>(boolean&nbsp;needClientAuth)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Configures the engine to <em>require</em> client authentication.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/mina/filter/SSLFilter.html#setUseClientMode(boolean)">setUseClientMode</A></B>(boolean&nbsp;clientMode)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Configures the engine to use client (or server) mode when handshaking.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/mina/filter/SSLFilter.html#setWantClientAuth(boolean)">setWantClientAuth</A></B>(boolean&nbsp;wantClientAuth)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Configures the engine to <em>request</em> client authentication.</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="../../../../org/apache/mina/filter/SSLFilter.html#startSSL(org.apache.mina.common.IoSession)">startSSL</A></B>(<A HREF="../../../../org/apache/mina/common/IoSession.html" title="interface in org.apache.mina.common">IoSession</A>&nbsp;session)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Re)starts SSL session for the specified <tt>session</tt> if not started yet.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/mina/common/WriteFuture.html" title="interface in org.apache.mina.common">WriteFuture</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/mina/filter/SSLFilter.html#stopSSL(org.apache.mina.common.IoSession)">stopSSL</A></B>(<A HREF="../../../../org/apache/mina/common/IoSession.html" title="interface in org.apache.mina.common">IoSession</A>&nbsp;session)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stops the SSL session by sending TLS <tt>close_notify</tt> message to
initiate TLS closure.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.apache.mina.common.IoFilterAdapter"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class org.apache.mina.common.<A HREF="../../../../org/apache/mina/common/IoFilterAdapter.html" title="class in org.apache.mina.common">IoFilterAdapter</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../org/apache/mina/common/IoFilterAdapter.html#destroy()">destroy</A>, <A HREF="../../../../org/apache/mina/common/IoFilterAdapter.html#exceptionCaught(org.apache.mina.common.IoFilter.NextFilter, org.apache.mina.common.IoSession, java.lang.Throwable)">exceptionCaught</A>, <A HREF="../../../../org/apache/mina/common/IoFilterAdapter.html#init()">init</A>, <A HREF="../../../../org/apache/mina/common/IoFilterAdapter.html#onPostRemove(org.apache.mina.common.IoFilterChain, java.lang.String, org.apache.mina.common.IoFilter.NextFilter)">onPostRemove</A>, <A HREF="../../../../org/apache/mina/common/IoFilterAdapter.html#sessionCreated(org.apache.mina.common.IoFilter.NextFilter, org.apache.mina.common.IoSession)">sessionCreated</A>, <A HREF="../../../../org/apache/mina/common/IoFilterAdapter.html#sessionIdle(org.apache.mina.common.IoFilter.NextFilter, org.apache.mina.common.IoSession, org.apache.mina.common.IdleStatus)">sessionIdle</A>, <A HREF="../../../../org/apache/mina/common/IoFilterAdapter.html#sessionOpened(org.apache.mina.common.IoFilter.NextFilter, org.apache.mina.common.IoSession)">sessionOpened</A></CODE></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.5.0/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.5.0/docs/api/java/lang/Object.html#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/j2se/1.5.0/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.5.0/docs/api/java/lang/Object.html#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.5.0/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.5.0/docs/api/java/lang/Object.html#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>
<!-- ============ FIELD DETAIL =========== -->
<A NAME="field_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>Field Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="SSL_SESSION"><!-- --></A><H3>
SSL_SESSION</H3>
<PRE>
public static final <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> <B>SSL_SESSION</B></PRE>
<DL>
<DD>A session attribute key that stores underlying <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLSession.html" title="class or interface in javax.net.ssl"><CODE>SSLSession</CODE></A>
for each session.
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="DISABLE_ENCRYPTION_ONCE"><!-- --></A><H3>
DISABLE_ENCRYPTION_ONCE</H3>
<PRE>
public static final <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> <B>DISABLE_ENCRYPTION_ONCE</B></PRE>
<DL>
<DD>A session attribute key that makes next one write request bypass
this filter (not encrypting the data). This is a marker attribute,
which means that you can put whatever as its value. (<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Boolean.html#TRUE" title="class or interface in java.lang"><CODE>Boolean.TRUE</CODE></A>
is preferred.) The attribute is automatically removed from the session
attribute map as soon as <A HREF="../../../../org/apache/mina/common/IoSession.html#write(java.lang.Object)"><CODE>IoSession.write(Object)</CODE></A> is invoked,
and therefore should be put again if you want to make more messages
bypass this filter. This is especially useful when you implement
StartTLS.
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="USE_NOTIFICATION"><!-- --></A><H3>
USE_NOTIFICATION</H3>
<PRE>
public static final <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> <B>USE_NOTIFICATION</B></PRE>
<DL>
<DD>A session attribute key that makes this filter to emit a
<A HREF="../../../../org/apache/mina/common/IoHandler.html#messageReceived(org.apache.mina.common.IoSession, java.lang.Object)"><CODE>IoHandler.messageReceived(IoSession, Object)</CODE></A> event with a
special message (<A HREF="../../../../org/apache/mina/filter/SSLFilter.html#SESSION_SECURED"><CODE>SESSION_SECURED</CODE></A> or <A HREF="../../../../org/apache/mina/filter/SSLFilter.html#SESSION_UNSECURED"><CODE>SESSION_UNSECURED</CODE></A>).
This is a marker attribute, which means that you can put whatever as its
value. (<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Boolean.html#TRUE" title="class or interface in java.lang"><CODE>Boolean.TRUE</CODE></A> is preferred.) By default, this filter
doesn't emit any events related with SSL session flow control.
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="SESSION_SECURED"><!-- --></A><H3>
SESSION_SECURED</H3>
<PRE>
public static final <A HREF="../../../../org/apache/mina/filter/SSLFilter.SSLFilterMessage.html" title="class in org.apache.mina.filter">SSLFilter.SSLFilterMessage</A> <B>SESSION_SECURED</B></PRE>
<DL>
<DD>A special message object which is emitted with a <A HREF="../../../../org/apache/mina/common/IoHandler.html#messageReceived(org.apache.mina.common.IoSession, java.lang.Object)"><CODE>IoHandler.messageReceived(IoSession, Object)</CODE></A>
event when the session is secured and its <A HREF="../../../../org/apache/mina/filter/SSLFilter.html#USE_NOTIFICATION"><CODE>USE_NOTIFICATION</CODE></A>
attribute is set.
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="SESSION_UNSECURED"><!-- --></A><H3>
SESSION_UNSECURED</H3>
<PRE>
public static final <A HREF="../../../../org/apache/mina/filter/SSLFilter.SSLFilterMessage.html" title="class in org.apache.mina.filter">SSLFilter.SSLFilterMessage</A> <B>SESSION_UNSECURED</B></PRE>
<DL>
<DD>A special message object which is emitted with a <A HREF="../../../../org/apache/mina/common/IoHandler.html#messageReceived(org.apache.mina.common.IoSession, java.lang.Object)"><CODE>IoHandler.messageReceived(IoSession, Object)</CODE></A>
event when the session is not secure anymore and its <A HREF="../../../../org/apache/mina/filter/SSLFilter.html#USE_NOTIFICATION"><CODE>USE_NOTIFICATION</CODE></A>
attribute is set.
<P>
<DL>
</DL>
</DL>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<A NAME="constructor_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>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="SSLFilter(javax.net.ssl.SSLContext)"><!-- --></A><H3>
SSLFilter</H3>
<PRE>
public <B>SSLFilter</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLContext.html" title="class or interface in javax.net.ssl">SSLContext</A>&nbsp;sslContext)</PRE>
<DL>
<DD>Creates a new SSL filter using the specified <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLContext.html" title="class or interface in javax.net.ssl"><CODE>SSLContext</CODE></A>.
<P>
</DL>
<!-- ============ 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="getSSLSession(org.apache.mina.common.IoSession)"><!-- --></A><H3>
getSSLSession</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLSession.html" title="class or interface in javax.net.ssl">SSLSession</A> <B>getSSLSession</B>(<A HREF="../../../../org/apache/mina/common/IoSession.html" title="interface in org.apache.mina.common">IoSession</A>&nbsp;session)</PRE>
<DL>
<DD>Returns the underlying <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLSession.html" title="class or interface in javax.net.ssl"><CODE>SSLSession</CODE></A> for the specified session.
<P>
<DD><DL>
<DT><B>Returns:</B><DD><tt>null</tt> if no <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLSession.html" title="class or interface in javax.net.ssl"><CODE>SSLSession</CODE></A> is initialized yet.</DL>
</DD>
</DL>
<HR>
<A NAME="startSSL(org.apache.mina.common.IoSession)"><!-- --></A><H3>
startSSL</H3>
<PRE>
public boolean <B>startSSL</B>(<A HREF="../../../../org/apache/mina/common/IoSession.html" title="interface in org.apache.mina.common">IoSession</A>&nbsp;session)
throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLException.html" title="class or interface in javax.net.ssl">SSLException</A></PRE>
<DL>
<DD>(Re)starts SSL session for the specified <tt>session</tt> if not started yet.
Please note that SSL session is automatically started by default, and therefore
you don't need to call this method unless you've used TLS closure.
<P>
<DD><DL>
<DT><B>Returns:</B><DD><tt>true</tt> if the SSL session has been started, <tt>false</tt> if already started.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLException.html" title="class or interface in javax.net.ssl">SSLException</A></CODE> - if failed to start the SSL session</DL>
</DD>
</DL>
<HR>
<A NAME="isSSLStarted(org.apache.mina.common.IoSession)"><!-- --></A><H3>
isSSLStarted</H3>
<PRE>
public boolean <B>isSSLStarted</B>(<A HREF="../../../../org/apache/mina/common/IoSession.html" title="interface in org.apache.mina.common">IoSession</A>&nbsp;session)</PRE>
<DL>
<DD>Returns <tt>true</tt> if and only if the specified <tt>session</tt> is
encrypted/decrypted over SSL/TLS currently. This method will start
to retun <tt>false</tt> after TLS <tt>close_notify</tt> message
is sent and any messages written after then is not goinf to get encrypted.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="stopSSL(org.apache.mina.common.IoSession)"><!-- --></A><H3>
stopSSL</H3>
<PRE>
public <A HREF="../../../../org/apache/mina/common/WriteFuture.html" title="interface in org.apache.mina.common">WriteFuture</A> <B>stopSSL</B>(<A HREF="../../../../org/apache/mina/common/IoSession.html" title="interface in org.apache.mina.common">IoSession</A>&nbsp;session)
throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLException.html" title="class or interface in javax.net.ssl">SSLException</A></PRE>
<DL>
<DD>Stops the SSL session by sending TLS <tt>close_notify</tt> message to
initiate TLS closure.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>session</CODE> - the <A HREF="../../../../org/apache/mina/common/IoSession.html" title="interface in org.apache.mina.common"><CODE>IoSession</CODE></A> to initiate TLS closure
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLException.html" title="class or interface in javax.net.ssl">SSLException</A></CODE> - if failed to initiate TLS closure
<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/IllegalArgumentException.html" title="class or interface in java.lang">IllegalArgumentException</A></CODE> - if this filter is not managing the specified session</DL>
</DD>
</DL>
<HR>
<A NAME="isUseClientMode()"><!-- --></A><H3>
isUseClientMode</H3>
<PRE>
public boolean <B>isUseClientMode</B>()</PRE>
<DL>
<DD>Returns <tt>true</tt> if the engine is set to use client mode
when handshaking.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="setUseClientMode(boolean)"><!-- --></A><H3>
setUseClientMode</H3>
<PRE>
public void <B>setUseClientMode</B>(boolean&nbsp;clientMode)</PRE>
<DL>
<DD>Configures the engine to use client (or server) mode when handshaking.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="isNeedClientAuth()"><!-- --></A><H3>
isNeedClientAuth</H3>
<PRE>
public boolean <B>isNeedClientAuth</B>()</PRE>
<DL>
<DD>Returns <tt>true</tt> if the engine will <em>require</em> client authentication.
This option is only useful to engines in the server mode.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="setNeedClientAuth(boolean)"><!-- --></A><H3>
setNeedClientAuth</H3>
<PRE>
public void <B>setNeedClientAuth</B>(boolean&nbsp;needClientAuth)</PRE>
<DL>
<DD>Configures the engine to <em>require</em> client authentication.
This option is only useful for engines in the server mode.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="isWantClientAuth()"><!-- --></A><H3>
isWantClientAuth</H3>
<PRE>
public boolean <B>isWantClientAuth</B>()</PRE>
<DL>
<DD>Returns <tt>true</tt> if the engine will <em>request</em> client authentication.
This option is only useful to engines in the server mode.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="setWantClientAuth(boolean)"><!-- --></A><H3>
setWantClientAuth</H3>
<PRE>
public void <B>setWantClientAuth</B>(boolean&nbsp;wantClientAuth)</PRE>
<DL>
<DD>Configures the engine to <em>request</em> client authentication.
This option is only useful for engines in the server mode.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getEnabledCipherSuites()"><!-- --></A><H3>
getEnabledCipherSuites</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[] <B>getEnabledCipherSuites</B>()</PRE>
<DL>
<DD>Returns the list of cipher suites to be enabled when <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLEngine.html" title="class or interface in javax.net.ssl"><CODE>SSLEngine</CODE></A>
is initialized.
<P>
<DD><DL>
<DT><B>Returns:</B><DD><tt>null</tt> means 'use <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLEngine.html" title="class or interface in javax.net.ssl"><CODE>SSLEngine</CODE></A>'s default.'</DL>
</DD>
</DL>
<HR>
<A NAME="setEnabledCipherSuites(java.lang.String[])"><!-- --></A><H3>
setEnabledCipherSuites</H3>
<PRE>
public void <B>setEnabledCipherSuites</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[]&nbsp;cipherSuites)</PRE>
<DL>
<DD>Sets the list of cipher suites to be enabled when <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLEngine.html" title="class or interface in javax.net.ssl"><CODE>SSLEngine</CODE></A>
is initialized.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>cipherSuites</CODE> - <tt>null</tt> means 'use <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLEngine.html" title="class or interface in javax.net.ssl"><CODE>SSLEngine</CODE></A>'s default.'</DL>
</DD>
</DL>
<HR>
<A NAME="getEnabledProtocols()"><!-- --></A><H3>
getEnabledProtocols</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[] <B>getEnabledProtocols</B>()</PRE>
<DL>
<DD>Returns the list of protocols to be enabled when <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLEngine.html" title="class or interface in javax.net.ssl"><CODE>SSLEngine</CODE></A>
is initialized.
<P>
<DD><DL>
<DT><B>Returns:</B><DD><tt>null</tt> means 'use <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLEngine.html" title="class or interface in javax.net.ssl"><CODE>SSLEngine</CODE></A>'s default.'</DL>
</DD>
</DL>
<HR>
<A NAME="setEnabledProtocols(java.lang.String[])"><!-- --></A><H3>
setEnabledProtocols</H3>
<PRE>
public void <B>setEnabledProtocols</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[]&nbsp;protocols)</PRE>
<DL>
<DD>Sets the list of protocols to be enabled when <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLEngine.html" title="class or interface in javax.net.ssl"><CODE>SSLEngine</CODE></A>
is initialized.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>protocols</CODE> - <tt>null</tt> means 'use <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLEngine.html" title="class or interface in javax.net.ssl"><CODE>SSLEngine</CODE></A>'s default.'</DL>
</DD>
</DL>
<HR>
<A NAME="onPreAdd(org.apache.mina.common.IoFilterChain, java.lang.String, org.apache.mina.common.IoFilter.NextFilter)"><!-- --></A><H3>
onPreAdd</H3>
<PRE>
public void <B>onPreAdd</B>(<A HREF="../../../../org/apache/mina/common/IoFilterChain.html" title="interface in org.apache.mina.common">IoFilterChain</A>&nbsp;parent,
<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name,
<A HREF="../../../../org/apache/mina/common/IoFilter.NextFilter.html" title="interface in org.apache.mina.common">IoFilter.NextFilter</A>&nbsp;nextFilter)
throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLException.html" title="class or interface in javax.net.ssl">SSLException</A></PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/mina/common/IoFilter.html#onPreAdd(org.apache.mina.common.IoFilterChain, java.lang.String, org.apache.mina.common.IoFilter.NextFilter)">IoFilter</A></CODE></B></DD>
<DD>Invoked before this filter is added to the specified <tt>parent</tt>.
Please note that this method can be invoked more than once if
this filter is added to more than one parents. This method is not
invoked before <A HREF="../../../../org/apache/mina/common/IoFilter.html#init()"><CODE>IoFilter.init()</CODE></A> is invoked.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/mina/common/IoFilter.html#onPreAdd(org.apache.mina.common.IoFilterChain, java.lang.String, org.apache.mina.common.IoFilter.NextFilter)">onPreAdd</A></CODE> in interface <CODE><A HREF="../../../../org/apache/mina/common/IoFilter.html" title="interface in org.apache.mina.common">IoFilter</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../org/apache/mina/common/IoFilterAdapter.html#onPreAdd(org.apache.mina.common.IoFilterChain, java.lang.String, org.apache.mina.common.IoFilter.NextFilter)">onPreAdd</A></CODE> in class <CODE><A HREF="../../../../org/apache/mina/common/IoFilterAdapter.html" title="class in org.apache.mina.common">IoFilterAdapter</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>parent</CODE> - the parent who called this method<DD><CODE>name</CODE> - the name assigned to this filter<DD><CODE>nextFilter</CODE> - the <A HREF="../../../../org/apache/mina/common/IoFilter.NextFilter.html" title="interface in org.apache.mina.common"><CODE>IoFilter.NextFilter</CODE></A> for this filter. You can reuse
this object until this filter is removed from the chain.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLException.html" title="class or interface in javax.net.ssl">SSLException</A></CODE></DL>
</DD>
</DL>
<HR>
<A NAME="onPostAdd(org.apache.mina.common.IoFilterChain, java.lang.String, org.apache.mina.common.IoFilter.NextFilter)"><!-- --></A><H3>
onPostAdd</H3>
<PRE>
public void <B>onPostAdd</B>(<A HREF="../../../../org/apache/mina/common/IoFilterChain.html" title="interface in org.apache.mina.common">IoFilterChain</A>&nbsp;parent,
<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name,
<A HREF="../../../../org/apache/mina/common/IoFilter.NextFilter.html" title="interface in org.apache.mina.common">IoFilter.NextFilter</A>&nbsp;nextFilter)
throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLException.html" title="class or interface in javax.net.ssl">SSLException</A></PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/mina/common/IoFilter.html#onPostAdd(org.apache.mina.common.IoFilterChain, java.lang.String, org.apache.mina.common.IoFilter.NextFilter)">IoFilter</A></CODE></B></DD>
<DD>Invoked after this filter is added to the specified <tt>parent</tt>.
Please note that this method can be invoked more than once if
this filter is added to more than one parents. This method is not
invoked before <A HREF="../../../../org/apache/mina/common/IoFilter.html#init()"><CODE>IoFilter.init()</CODE></A> is invoked.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/mina/common/IoFilter.html#onPostAdd(org.apache.mina.common.IoFilterChain, java.lang.String, org.apache.mina.common.IoFilter.NextFilter)">onPostAdd</A></CODE> in interface <CODE><A HREF="../../../../org/apache/mina/common/IoFilter.html" title="interface in org.apache.mina.common">IoFilter</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../org/apache/mina/common/IoFilterAdapter.html#onPostAdd(org.apache.mina.common.IoFilterChain, java.lang.String, org.apache.mina.common.IoFilter.NextFilter)">onPostAdd</A></CODE> in class <CODE><A HREF="../../../../org/apache/mina/common/IoFilterAdapter.html" title="class in org.apache.mina.common">IoFilterAdapter</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>parent</CODE> - the parent who called this method<DD><CODE>name</CODE> - the name assigned to this filter<DD><CODE>nextFilter</CODE> - the <A HREF="../../../../org/apache/mina/common/IoFilter.NextFilter.html" title="interface in org.apache.mina.common"><CODE>IoFilter.NextFilter</CODE></A> for this filter. You can reuse
this object until this filter is removed from the chain.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLException.html" title="class or interface in javax.net.ssl">SSLException</A></CODE></DL>
</DD>
</DL>
<HR>
<A NAME="onPreRemove(org.apache.mina.common.IoFilterChain, java.lang.String, org.apache.mina.common.IoFilter.NextFilter)"><!-- --></A><H3>
onPreRemove</H3>
<PRE>
public void <B>onPreRemove</B>(<A HREF="../../../../org/apache/mina/common/IoFilterChain.html" title="interface in org.apache.mina.common">IoFilterChain</A>&nbsp;parent,
<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;name,
<A HREF="../../../../org/apache/mina/common/IoFilter.NextFilter.html" title="interface in org.apache.mina.common">IoFilter.NextFilter</A>&nbsp;nextFilter)
throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLException.html" title="class or interface in javax.net.ssl">SSLException</A></PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/mina/common/IoFilter.html#onPreRemove(org.apache.mina.common.IoFilterChain, java.lang.String, org.apache.mina.common.IoFilter.NextFilter)">IoFilter</A></CODE></B></DD>
<DD>Invoked before this filter is removed from the specified <tt>parent</tt>.
Please note that this method can be invoked more than once if
this filter is removed from more than one parents.
This method is always invoked before <A HREF="../../../../org/apache/mina/common/IoFilter.html#destroy()"><CODE>IoFilter.destroy()</CODE></A> is invoked.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/mina/common/IoFilter.html#onPreRemove(org.apache.mina.common.IoFilterChain, java.lang.String, org.apache.mina.common.IoFilter.NextFilter)">onPreRemove</A></CODE> in interface <CODE><A HREF="../../../../org/apache/mina/common/IoFilter.html" title="interface in org.apache.mina.common">IoFilter</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../org/apache/mina/common/IoFilterAdapter.html#onPreRemove(org.apache.mina.common.IoFilterChain, java.lang.String, org.apache.mina.common.IoFilter.NextFilter)">onPreRemove</A></CODE> in class <CODE><A HREF="../../../../org/apache/mina/common/IoFilterAdapter.html" title="class in org.apache.mina.common">IoFilterAdapter</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>parent</CODE> - the parent who called this method<DD><CODE>name</CODE> - the name assigned to this filter<DD><CODE>nextFilter</CODE> - the <A HREF="../../../../org/apache/mina/common/IoFilter.NextFilter.html" title="interface in org.apache.mina.common"><CODE>IoFilter.NextFilter</CODE></A> for this filter. You can reuse
this object until this filter is removed from the chain.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLException.html" title="class or interface in javax.net.ssl">SSLException</A></CODE></DL>
</DD>
</DL>
<HR>
<A NAME="sessionClosed(org.apache.mina.common.IoFilter.NextFilter, org.apache.mina.common.IoSession)"><!-- --></A><H3>
sessionClosed</H3>
<PRE>
public void <B>sessionClosed</B>(<A HREF="../../../../org/apache/mina/common/IoFilter.NextFilter.html" title="interface in org.apache.mina.common">IoFilter.NextFilter</A>&nbsp;nextFilter,
<A HREF="../../../../org/apache/mina/common/IoSession.html" title="interface in org.apache.mina.common">IoSession</A>&nbsp;session)
throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLException.html" title="class or interface in javax.net.ssl">SSLException</A></PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/mina/common/IoFilter.html#sessionClosed(org.apache.mina.common.IoFilter.NextFilter, org.apache.mina.common.IoSession)">IoFilter</A></CODE></B></DD>
<DD>Filters <A HREF="../../../../org/apache/mina/common/IoHandler.html#sessionClosed(org.apache.mina.common.IoSession)"><CODE>IoHandler.sessionClosed(IoSession)</CODE></A> event.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/mina/common/IoFilter.html#sessionClosed(org.apache.mina.common.IoFilter.NextFilter, org.apache.mina.common.IoSession)">sessionClosed</A></CODE> in interface <CODE><A HREF="../../../../org/apache/mina/common/IoFilter.html" title="interface in org.apache.mina.common">IoFilter</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../org/apache/mina/common/IoFilterAdapter.html#sessionClosed(org.apache.mina.common.IoFilter.NextFilter, org.apache.mina.common.IoSession)">sessionClosed</A></CODE> in class <CODE><A HREF="../../../../org/apache/mina/common/IoFilterAdapter.html" title="class in org.apache.mina.common">IoFilterAdapter</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLException.html" title="class or interface in javax.net.ssl">SSLException</A></CODE></DL>
</DD>
</DL>
<HR>
<A NAME="messageReceived(org.apache.mina.common.IoFilter.NextFilter, org.apache.mina.common.IoSession, java.lang.Object)"><!-- --></A><H3>
messageReceived</H3>
<PRE>
public void <B>messageReceived</B>(<A HREF="../../../../org/apache/mina/common/IoFilter.NextFilter.html" title="interface in org.apache.mina.common">IoFilter.NextFilter</A>&nbsp;nextFilter,
<A HREF="../../../../org/apache/mina/common/IoSession.html" title="interface in org.apache.mina.common">IoSession</A>&nbsp;session,
<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>&nbsp;message)
throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLException.html" title="class or interface in javax.net.ssl">SSLException</A></PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/mina/common/IoFilter.html#messageReceived(org.apache.mina.common.IoFilter.NextFilter, org.apache.mina.common.IoSession, java.lang.Object)">IoFilter</A></CODE></B></DD>
<DD>Filters <A HREF="../../../../org/apache/mina/common/IoHandler.html#messageReceived(org.apache.mina.common.IoSession, java.lang.Object)"><CODE>IoHandler.messageReceived(IoSession,Object)</CODE></A>
event.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/mina/common/IoFilter.html#messageReceived(org.apache.mina.common.IoFilter.NextFilter, org.apache.mina.common.IoSession, java.lang.Object)">messageReceived</A></CODE> in interface <CODE><A HREF="../../../../org/apache/mina/common/IoFilter.html" title="interface in org.apache.mina.common">IoFilter</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../org/apache/mina/common/IoFilterAdapter.html#messageReceived(org.apache.mina.common.IoFilter.NextFilter, org.apache.mina.common.IoSession, java.lang.Object)">messageReceived</A></CODE> in class <CODE><A HREF="../../../../org/apache/mina/common/IoFilterAdapter.html" title="class in org.apache.mina.common">IoFilterAdapter</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLException.html" title="class or interface in javax.net.ssl">SSLException</A></CODE></DL>
</DD>
</DL>
<HR>
<A NAME="messageSent(org.apache.mina.common.IoFilter.NextFilter, org.apache.mina.common.IoSession, java.lang.Object)"><!-- --></A><H3>
messageSent</H3>
<PRE>
public void <B>messageSent</B>(<A HREF="../../../../org/apache/mina/common/IoFilter.NextFilter.html" title="interface in org.apache.mina.common">IoFilter.NextFilter</A>&nbsp;nextFilter,
<A HREF="../../../../org/apache/mina/common/IoSession.html" title="interface in org.apache.mina.common">IoSession</A>&nbsp;session,
<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>&nbsp;message)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/mina/common/IoFilter.html#messageSent(org.apache.mina.common.IoFilter.NextFilter, org.apache.mina.common.IoSession, java.lang.Object)">IoFilter</A></CODE></B></DD>
<DD>Filters <A HREF="../../../../org/apache/mina/common/IoHandler.html#messageSent(org.apache.mina.common.IoSession, java.lang.Object)"><CODE>IoHandler.messageSent(IoSession,Object)</CODE></A>
event.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/mina/common/IoFilter.html#messageSent(org.apache.mina.common.IoFilter.NextFilter, org.apache.mina.common.IoSession, java.lang.Object)">messageSent</A></CODE> in interface <CODE><A HREF="../../../../org/apache/mina/common/IoFilter.html" title="interface in org.apache.mina.common">IoFilter</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../org/apache/mina/common/IoFilterAdapter.html#messageSent(org.apache.mina.common.IoFilter.NextFilter, org.apache.mina.common.IoSession, java.lang.Object)">messageSent</A></CODE> in class <CODE><A HREF="../../../../org/apache/mina/common/IoFilterAdapter.html" title="class in org.apache.mina.common">IoFilterAdapter</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="filterWrite(org.apache.mina.common.IoFilter.NextFilter, org.apache.mina.common.IoSession, org.apache.mina.common.IoFilter.WriteRequest)"><!-- --></A><H3>
filterWrite</H3>
<PRE>
public void <B>filterWrite</B>(<A HREF="../../../../org/apache/mina/common/IoFilter.NextFilter.html" title="interface in org.apache.mina.common">IoFilter.NextFilter</A>&nbsp;nextFilter,
<A HREF="../../../../org/apache/mina/common/IoSession.html" title="interface in org.apache.mina.common">IoSession</A>&nbsp;session,
<A HREF="../../../../org/apache/mina/common/IoFilter.WriteRequest.html" title="class in org.apache.mina.common">IoFilter.WriteRequest</A>&nbsp;writeRequest)
throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLException.html" title="class or interface in javax.net.ssl">SSLException</A></PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/mina/common/IoFilter.html#filterWrite(org.apache.mina.common.IoFilter.NextFilter, org.apache.mina.common.IoSession, org.apache.mina.common.IoFilter.WriteRequest)">IoFilter</A></CODE></B></DD>
<DD>Filters <A HREF="../../../../org/apache/mina/common/IoSession.html#write(java.lang.Object)"><CODE>IoSession.write(Object)</CODE></A> method invocation.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/mina/common/IoFilter.html#filterWrite(org.apache.mina.common.IoFilter.NextFilter, org.apache.mina.common.IoSession, org.apache.mina.common.IoFilter.WriteRequest)">filterWrite</A></CODE> in interface <CODE><A HREF="../../../../org/apache/mina/common/IoFilter.html" title="interface in org.apache.mina.common">IoFilter</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../org/apache/mina/common/IoFilterAdapter.html#filterWrite(org.apache.mina.common.IoFilter.NextFilter, org.apache.mina.common.IoSession, org.apache.mina.common.IoFilter.WriteRequest)">filterWrite</A></CODE> in class <CODE><A HREF="../../../../org/apache/mina/common/IoFilterAdapter.html" title="class in org.apache.mina.common">IoFilterAdapter</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLException.html" title="class or interface in javax.net.ssl">SSLException</A></CODE></DL>
</DD>
</DL>
<HR>
<A NAME="filterClose(org.apache.mina.common.IoFilter.NextFilter, org.apache.mina.common.IoSession)"><!-- --></A><H3>
filterClose</H3>
<PRE>
public void <B>filterClose</B>(<A HREF="../../../../org/apache/mina/common/IoFilter.NextFilter.html" title="interface in org.apache.mina.common">IoFilter.NextFilter</A>&nbsp;nextFilter,
<A HREF="../../../../org/apache/mina/common/IoSession.html" title="interface in org.apache.mina.common">IoSession</A>&nbsp;session)
throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLException.html" title="class or interface in javax.net.ssl">SSLException</A></PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/mina/common/IoFilter.html#filterClose(org.apache.mina.common.IoFilter.NextFilter, org.apache.mina.common.IoSession)">IoFilter</A></CODE></B></DD>
<DD>Filters <A HREF="../../../../org/apache/mina/common/IoSession.html#close()"><CODE>IoSession.close()</CODE></A> method invocation.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/mina/common/IoFilter.html#filterClose(org.apache.mina.common.IoFilter.NextFilter, org.apache.mina.common.IoSession)">filterClose</A></CODE> in interface <CODE><A HREF="../../../../org/apache/mina/common/IoFilter.html" title="interface in org.apache.mina.common">IoFilter</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../org/apache/mina/common/IoFilterAdapter.html#filterClose(org.apache.mina.common.IoFilter.NextFilter, org.apache.mina.common.IoSession)">filterClose</A></CODE> in class <CODE><A HREF="../../../../org/apache/mina/common/IoFilterAdapter.html" title="class in org.apache.mina.common">IoFilterAdapter</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/javax/net/ssl/SSLException.html" title="class or interface in javax.net.ssl">SSLException</A></CODE></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/SSLFilter.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="../../../../org/apache/mina/filter/ReferenceCountingIoFilter.html" title="class in org.apache.mina.filter"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/mina/filter/SSLFilter.SSLFilterMessage.html" title="class in org.apache.mina.filter"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../index.html?org/apache/mina/filter/SSLFilter.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="SSLFilter.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;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
</BODY>
</HTML>