<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>SslFilter xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/mina/filter/ssl/SslFilter.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a name="2" href="#2">2</a>   <em class="jxr_comment"> *  Licensed to the Apache Software Foundation (ASF) under one</em>
<a name="3" href="#3">3</a>   <em class="jxr_comment"> *  or more contributor license agreements.  See the NOTICE file</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> *  distributed with this work for additional information</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> *  regarding copyright ownership.  The ASF licenses this file</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> *  to you under the Apache License, Version 2.0 (the</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> *  "License"); you may not use this file except in compliance</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> *  with the License.  You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
<a name="10" href="#10">10</a>  <em class="jxr_comment"> *    <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> *  Unless required by applicable law or agreed to in writing,</em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> *  software distributed under the License is distributed on an</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> *  KIND, either express or implied.  See the License for the</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> *  specific language governing permissions and limitations</em>
<a name="17" href="#17">17</a>  <em class="jxr_comment"> *  under the License.</em>
<a name="18" href="#18">18</a>  <em class="jxr_comment"> *</em>
<a name="19" href="#19">19</a>  <em class="jxr_comment"> */</em>
<a name="20" href="#20">20</a>  <strong class="jxr_keyword">package</strong> org.apache.mina.filter.ssl;
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.net.InetSocketAddress;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a name="25" href="#25">25</a>  
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> javax.net.ssl.SSLContext;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> javax.net.ssl.SSLEngine;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> javax.net.ssl.SSLException;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> javax.net.ssl.SSLHandshakeException;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> javax.net.ssl.SSLSession;
<a name="31" href="#31">31</a>  
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.common.AttributeKey;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.common.DefaultWriteFuture;
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.common.IoBuffer;
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.common.IoFilterAdapter;
<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.common.IoFilterChain;
<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.common.IoFuture;
<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.common.IoFutureListener;
<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.common.IoHandler;
<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.common.IoSession;
<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.common.WriteFuture;
<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.common.WriteRequest;
<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.common.WriteRequestWrapper;
<a name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.common.WriteToClosedSessionException;
<a name="45" href="#45">45</a>  
<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment">/**</em>
<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment"> * An SSL filter that encrypts and decrypts the data exchanged in the session.</em>
<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment"> * Adding this filter triggers SSL handshake procedure immediately by sending</em>
<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment"> * a SSL 'hello' message, so you don't need to call</em>
<a name="50" href="#50">50</a>  <em class="jxr_javadoccomment"> * {@link #startSsl(IoSession)} manually unless you are implementing StartTLS</em>
<a name="51" href="#51">51</a>  <em class="jxr_javadoccomment"> * (see below).  If you don't want the handshake procedure to start</em>
<a name="52" href="#52">52</a>  <em class="jxr_javadoccomment"> * immediately, please specify {@code true} as {@code autoStart} parameter in</em>
<a name="53" href="#53">53</a>  <em class="jxr_javadoccomment"> * the constructor.</em>
<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
<a name="55" href="#55">55</a>  <em class="jxr_javadoccomment"> * This filter uses an {@link SSLEngine} which was introduced in Java 5, so</em>
<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment"> * Java version 5 or above is mandatory to use this filter. And please note that</em>
<a name="57" href="#57">57</a>  <em class="jxr_javadoccomment"> * this filter only works for TCP/IP connections.</em>
<a name="58" href="#58">58</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
<a name="59" href="#59">59</a>  <em class="jxr_javadoccomment"> *</em>
<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment"> * &lt;h2&gt;Implementing StartTLS&lt;/h2&gt;</em>
<a name="61" href="#61">61</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment"> * You can use {@link #DISABLE_ENCRYPTION_ONCE} attribute to implement StartTLS:</em>
<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment"> * &lt;pre&gt;</em>
<a name="64" href="#64">64</a>  <em class="jxr_javadoccomment"> * public void messageReceived(IoSession session, Object message) {</em>
<a name="65" href="#65">65</a>  <em class="jxr_javadoccomment"> *    if (message instanceof MyStartTLSRequest) {</em>
<a name="66" href="#66">66</a>  <em class="jxr_javadoccomment"> *        // Insert SSLFilter to get ready for handshaking</em>
<a name="67" href="#67">67</a>  <em class="jxr_javadoccomment"> *        session.getFilterChain().addFirst(sslFilter);</em>
<a name="68" href="#68">68</a>  <em class="jxr_javadoccomment"> *</em>
<a name="69" href="#69">69</a>  <em class="jxr_javadoccomment"> *        // Disable encryption temporarilly.</em>
<a name="70" href="#70">70</a>  <em class="jxr_javadoccomment"> *        // This attribute will be removed by SSLFilter</em>
<a name="71" href="#71">71</a>  <em class="jxr_javadoccomment"> *        // inside the Session.write() call below.</em>
<a name="72" href="#72">72</a>  <em class="jxr_javadoccomment"> *        session.setAttribute(SSLFilter.DISABLE_ENCRYPTION_ONCE, Boolean.TRUE);</em>
<a name="73" href="#73">73</a>  <em class="jxr_javadoccomment"> *</em>
<a name="74" href="#74">74</a>  <em class="jxr_javadoccomment"> *        // Write StartTLSResponse which won't be encrypted.</em>
<a name="75" href="#75">75</a>  <em class="jxr_javadoccomment"> *        session.write(new MyStartTLSResponse(OK));</em>
<a name="76" href="#76">76</a>  <em class="jxr_javadoccomment"> *</em>
<a name="77" href="#77">77</a>  <em class="jxr_javadoccomment"> *        // Now DISABLE_ENCRYPTION_ONCE attribute is cleared.</em>
<a name="78" href="#78">78</a>  <em class="jxr_javadoccomment"> *        assert session.getAttribute(SSLFilter.DISABLE_ENCRYPTION_ONCE) == null;</em>
<a name="79" href="#79">79</a>  <em class="jxr_javadoccomment"> *    }</em>
<a name="80" href="#80">80</a>  <em class="jxr_javadoccomment"> * }</em>
<a name="81" href="#81">81</a>  <em class="jxr_javadoccomment"> * &lt;/pre&gt;</em>
<a name="82" href="#82">82</a>  <em class="jxr_javadoccomment"> *</em>
<a name="83" href="#83">83</a>  <em class="jxr_javadoccomment"> * @author The Apache MINA Project (dev@mina.apache.org)</em>
<a name="84" href="#84">84</a>  <em class="jxr_javadoccomment"> * @version $Rev: 616100 $, $Date: 2008-01-28 15:58:32 -0700 (Mon, 28 Jan 2008) $</em>
<a name="85" href="#85">85</a>  <em class="jxr_javadoccomment"> */</em>
<a name="86" href="#86">86</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/mina/filter/ssl/SslFilter.html">SslFilter</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../../org/apache/mina/common/IoFilterAdapter.html">IoFilterAdapter</a> {
<a name="87" href="#87">87</a>      <em class="jxr_javadoccomment">/**</em>
<a name="88" href="#88">88</a>  <em class="jxr_javadoccomment">     * A session attribute key that stores underlying {@link SSLSession}</em>
<a name="89" href="#89">89</a>  <em class="jxr_javadoccomment">     * for each session.</em>
<a name="90" href="#90">90</a>  <em class="jxr_javadoccomment">     */</em>
<a name="91" href="#91">91</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/common/AttributeKey.html">AttributeKey</a> SSL_SESSION = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/common/AttributeKey.html">AttributeKey</a>(SslFilter.<strong class="jxr_keyword">class</strong>, <span class="jxr_string">"session"</span>);
<a name="92" href="#92">92</a>  
<a name="93" href="#93">93</a>      <em class="jxr_javadoccomment">/**</em>
<a name="94" href="#94">94</a>  <em class="jxr_javadoccomment">     * A session attribute key that makes next one write request bypass</em>
<a name="95" href="#95">95</a>  <em class="jxr_javadoccomment">     * this filter (not encrypting the data).  This is a marker attribute,</em>
<a name="96" href="#96">96</a>  <em class="jxr_javadoccomment">     * which means that you can put whatever as its value. ({@link Boolean#TRUE}</em>
<a name="97" href="#97">97</a>  <em class="jxr_javadoccomment">     * is preferred.)  The attribute is automatically removed from the session</em>
<a name="98" href="#98">98</a>  <em class="jxr_javadoccomment">     * attribute map as soon as {@link IoSession#write(Object)} is invoked,</em>
<a name="99" href="#99">99</a>  <em class="jxr_javadoccomment">     * and therefore should be put again if you want to make more messages</em>
<a name="100" href="#100">100</a> <em class="jxr_javadoccomment">     * bypass this filter.  This is especially useful when you implement</em>
<a name="101" href="#101">101</a> <em class="jxr_javadoccomment">     * StartTLS.</em>
<a name="102" href="#102">102</a> <em class="jxr_javadoccomment">     */</em>
<a name="103" href="#103">103</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/common/AttributeKey.html">AttributeKey</a> DISABLE_ENCRYPTION_ONCE = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/common/AttributeKey.html">AttributeKey</a>(SslFilter.<strong class="jxr_keyword">class</strong>, <span class="jxr_string">"disableOnce"</span>);
<a name="104" href="#104">104</a> 
<a name="105" href="#105">105</a>     <em class="jxr_javadoccomment">/**</em>
<a name="106" href="#106">106</a> <em class="jxr_javadoccomment">     * A session attribute key that makes this filter to emit a</em>
<a name="107" href="#107">107</a> <em class="jxr_javadoccomment">     * {@link IoHandler#messageReceived(IoSession, Object)} event with a</em>
<a name="108" href="#108">108</a> <em class="jxr_javadoccomment">     * special message ({@link #SESSION_SECURED} or {@link #SESSION_UNSECURED}).</em>
<a name="109" href="#109">109</a> <em class="jxr_javadoccomment">     * This is a marker attribute, which means that you can put whatever as its</em>
<a name="110" href="#110">110</a> <em class="jxr_javadoccomment">     * value. ({@link Boolean#TRUE} is preferred.)  By default, this filter</em>
<a name="111" href="#111">111</a> <em class="jxr_javadoccomment">     * doesn't emit any events related with SSL session flow control.</em>
<a name="112" href="#112">112</a> <em class="jxr_javadoccomment">     */</em>
<a name="113" href="#113">113</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/common/AttributeKey.html">AttributeKey</a> USE_NOTIFICATION = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/common/AttributeKey.html">AttributeKey</a>(SslFilter.<strong class="jxr_keyword">class</strong>, <span class="jxr_string">"useNotification"</span>);
<a name="114" href="#114">114</a> 
<a name="115" href="#115">115</a>     <em class="jxr_javadoccomment">/**</em>
<a name="116" href="#116">116</a> <em class="jxr_javadoccomment">     * A session attribute key that should be set to an {@link InetSocketAddress}.</em>
<a name="117" href="#117">117</a> <em class="jxr_javadoccomment">     * Setting this attribute causes</em>
<a name="118" href="#118">118</a> <em class="jxr_javadoccomment">     * {@link SSLContext#createSSLEngine(String, int)} to be called passing the</em>
<a name="119" href="#119">119</a> <em class="jxr_javadoccomment">     * hostname and port of the {@link InetSocketAddress} to get an</em>
<a name="120" href="#120">120</a> <em class="jxr_javadoccomment">     * {@link SSLEngine} instance. If not set {@link SSLContext#createSSLEngine()}</em>
<a name="121" href="#121">121</a> <em class="jxr_javadoccomment">     * will be called.</em>
<a name="122" href="#122">122</a> <em class="jxr_javadoccomment">     * .</em>
<a name="123" href="#123">123</a> <em class="jxr_javadoccomment">     * Using this feature {@link SSLSession} objects may be cached and reused</em>
<a name="124" href="#124">124</a> <em class="jxr_javadoccomment">     * when in client mode.</em>
<a name="125" href="#125">125</a> <em class="jxr_javadoccomment">     *</em>
<a name="126" href="#126">126</a> <em class="jxr_javadoccomment">     * @see SSLContext#createSSLEngine(String, int)</em>
<a name="127" href="#127">127</a> <em class="jxr_javadoccomment">     */</em>
<a name="128" href="#128">128</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/common/AttributeKey.html">AttributeKey</a> PEER_ADDRESS = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/common/AttributeKey.html">AttributeKey</a>(SslFilter.<strong class="jxr_keyword">class</strong>, <span class="jxr_string">"peerAddress"</span>);
<a name="129" href="#129">129</a> 
<a name="130" href="#130">130</a>     <em class="jxr_javadoccomment">/**</em>
<a name="131" href="#131">131</a> <em class="jxr_javadoccomment">     * A special message object which is emitted with a {@link IoHandler#messageReceived(IoSession, Object)}</em>
<a name="132" href="#132">132</a> <em class="jxr_javadoccomment">     * event when the session is secured and its {@link #USE_NOTIFICATION}</em>
<a name="133" href="#133">133</a> <em class="jxr_javadoccomment">     * attribute is set.</em>
<a name="134" href="#134">134</a> <em class="jxr_javadoccomment">     */</em>
<a name="135" href="#135">135</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/filter/ssl/SslFilter.html">SslFilterMessage</a> SESSION_SECURED = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/filter/ssl/SslFilter.html">SslFilterMessage</a>(
<a name="136" href="#136">136</a>             <span class="jxr_string">"SESSION_SECURED"</span>);
<a name="137" href="#137">137</a> 
<a name="138" href="#138">138</a>     <em class="jxr_javadoccomment">/**</em>
<a name="139" href="#139">139</a> <em class="jxr_javadoccomment">     * A special message object which is emitted with a {@link IoHandler#messageReceived(IoSession, Object)}</em>
<a name="140" href="#140">140</a> <em class="jxr_javadoccomment">     * event when the session is not secure anymore and its {@link #USE_NOTIFICATION}</em>
<a name="141" href="#141">141</a> <em class="jxr_javadoccomment">     * attribute is set.</em>
<a name="142" href="#142">142</a> <em class="jxr_javadoccomment">     */</em>
<a name="143" href="#143">143</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/filter/ssl/SslFilter.html">SslFilterMessage</a> SESSION_UNSECURED = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/filter/ssl/SslFilter.html">SslFilterMessage</a>(
<a name="144" href="#144">144</a>             <span class="jxr_string">"SESSION_UNSECURED"</span>);
<a name="145" href="#145">145</a> 
<a name="146" href="#146">146</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/common/AttributeKey.html">AttributeKey</a> NEXT_FILTER = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/common/AttributeKey.html">AttributeKey</a>(SslFilter.<strong class="jxr_keyword">class</strong>, <span class="jxr_string">"nextFilter"</span>);
<a name="147" href="#147">147</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/common/AttributeKey.html">AttributeKey</a> SSL_HANDLER = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/common/AttributeKey.html">AttributeKey</a>(SslFilter.<strong class="jxr_keyword">class</strong>, <span class="jxr_string">"handler"</span>);
<a name="148" href="#148">148</a> 
<a name="149" href="#149">149</a>     <em class="jxr_comment">// SSL Context</em>
<a name="150" href="#150">150</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> SSLContext sslContext;
<a name="151" href="#151">151</a> 
<a name="152" href="#152">152</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> autoStart;
<a name="153" href="#153">153</a> 
<a name="154" href="#154">154</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> client;
<a name="155" href="#155">155</a> 
<a name="156" href="#156">156</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> needClientAuth;
<a name="157" href="#157">157</a> 
<a name="158" href="#158">158</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> wantClientAuth;
<a name="159" href="#159">159</a> 
<a name="160" href="#160">160</a>     <strong class="jxr_keyword">private</strong> String[] enabledCipherSuites;
<a name="161" href="#161">161</a> 
<a name="162" href="#162">162</a>     <strong class="jxr_keyword">private</strong> String[] enabledProtocols;
<a name="163" href="#163">163</a> 
<a name="164" href="#164">164</a>     <em class="jxr_javadoccomment">/**</em>
<a name="165" href="#165">165</a> <em class="jxr_javadoccomment">     * Creates a new SSL filter using the specified {@link SSLContext}.</em>
<a name="166" href="#166">166</a> <em class="jxr_javadoccomment">     */</em>
<a name="167" href="#167">167</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/filter/ssl/SslFilter.html">SslFilter</a>(SSLContext sslContext) {
<a name="168" href="#168">168</a>         <strong class="jxr_keyword">this</strong>(sslContext, <strong class="jxr_keyword">true</strong>);
<a name="169" href="#169">169</a>     }
<a name="170" href="#170">170</a> 
<a name="171" href="#171">171</a>     <em class="jxr_javadoccomment">/**</em>
<a name="172" href="#172">172</a> <em class="jxr_javadoccomment">     * Creates a new SSL filter using the specified {@link SSLContext}.</em>
<a name="173" href="#173">173</a> <em class="jxr_javadoccomment">     */</em>
<a name="174" href="#174">174</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/filter/ssl/SslFilter.html">SslFilter</a>(SSLContext sslContext, <strong class="jxr_keyword">boolean</strong> autoStart) {
<a name="175" href="#175">175</a>         <strong class="jxr_keyword">if</strong> (sslContext == <strong class="jxr_keyword">null</strong>) {
<a name="176" href="#176">176</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> NullPointerException(<span class="jxr_string">"sslContext"</span>);
<a name="177" href="#177">177</a>         }
<a name="178" href="#178">178</a> 
<a name="179" href="#179">179</a>         <strong class="jxr_keyword">this</strong>.sslContext = sslContext;
<a name="180" href="#180">180</a>         <strong class="jxr_keyword">this</strong>.autoStart = autoStart;
<a name="181" href="#181">181</a>     }
<a name="182" href="#182">182</a> 
<a name="183" href="#183">183</a>     <em class="jxr_javadoccomment">/**</em>
<a name="184" href="#184">184</a> <em class="jxr_javadoccomment">     * Returns the underlying {@link SSLSession} for the specified session.</em>
<a name="185" href="#185">185</a> <em class="jxr_javadoccomment">     *</em>
<a name="186" href="#186">186</a> <em class="jxr_javadoccomment">     * @return &lt;tt&gt;null&lt;/tt&gt; if no {@link SSLSession} is initialized yet.</em>
<a name="187" href="#187">187</a> <em class="jxr_javadoccomment">     */</em>
<a name="188" href="#188">188</a>     <strong class="jxr_keyword">public</strong> SSLSession getSslSession(<a href="../../../../../org/apache/mina/common/IoSession.html">IoSession</a> session) {
<a name="189" href="#189">189</a>         <strong class="jxr_keyword">return</strong> (SSLSession) session.getAttribute(SSL_SESSION);
<a name="190" href="#190">190</a>     }
<a name="191" href="#191">191</a> 
<a name="192" href="#192">192</a>     <em class="jxr_javadoccomment">/**</em>
<a name="193" href="#193">193</a> <em class="jxr_javadoccomment">     * (Re)starts SSL session for the specified &lt;tt&gt;session&lt;/tt&gt; if not started yet.</em>
<a name="194" href="#194">194</a> <em class="jxr_javadoccomment">     * Please note that SSL session is automatically started by default, and therefore</em>
<a name="195" href="#195">195</a> <em class="jxr_javadoccomment">     * you don't need to call this method unless you've used TLS closure.</em>
<a name="196" href="#196">196</a> <em class="jxr_javadoccomment">     *</em>
<a name="197" href="#197">197</a> <em class="jxr_javadoccomment">     * @return &lt;tt&gt;true&lt;/tt&gt; if the SSL session has been started, &lt;tt&gt;false&lt;/tt&gt; if already started.</em>
<a name="198" href="#198">198</a> <em class="jxr_javadoccomment">     * @throws SSLException if failed to start the SSL session</em>
<a name="199" href="#199">199</a> <em class="jxr_javadoccomment">     */</em>
<a name="200" href="#200">200</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> startSsl(<a href="../../../../../org/apache/mina/common/IoSession.html">IoSession</a> session) <strong class="jxr_keyword">throws</strong> SSLException {
<a name="201" href="#201">201</a>         <a href="../../../../../org/apache/mina/filter/ssl/SslHandler.html">SslHandler</a> handler = getSslSessionHandler(session);
<a name="202" href="#202">202</a>         <strong class="jxr_keyword">boolean</strong> started;
<a name="203" href="#203">203</a>         <strong class="jxr_keyword">synchronized</strong> (handler) {
<a name="204" href="#204">204</a>             <strong class="jxr_keyword">if</strong> (handler.isOutboundDone()) {
<a name="205" href="#205">205</a>                 <a href="../../../../../org/apache/mina/common/IoFilter.html">NextFilter</a> nextFilter = (NextFilter) session
<a name="206" href="#206">206</a>                         .getAttribute(NEXT_FILTER);
<a name="207" href="#207">207</a>                 handler.destroy();
<a name="208" href="#208">208</a>                 handler.init();
<a name="209" href="#209">209</a>                 handler.handshake(nextFilter);
<a name="210" href="#210">210</a>                 started = <strong class="jxr_keyword">true</strong>;
<a name="211" href="#211">211</a>             } <strong class="jxr_keyword">else</strong> {
<a name="212" href="#212">212</a>                 started = false;
<a name="213" href="#213">213</a>             }
<a name="214" href="#214">214</a>         }
<a name="215" href="#215">215</a> 
<a name="216" href="#216">216</a>         handler.flushScheduledEvents();
<a name="217" href="#217">217</a>         <strong class="jxr_keyword">return</strong> started;
<a name="218" href="#218">218</a>     }
<a name="219" href="#219">219</a> 
<a name="220" href="#220">220</a>     <em class="jxr_javadoccomment">/**</em>
<a name="221" href="#221">221</a> <em class="jxr_javadoccomment">     * Returns &lt;tt&gt;true&lt;/tt&gt; if and only if the specified &lt;tt&gt;session&lt;/tt&gt; is</em>
<a name="222" href="#222">222</a> <em class="jxr_javadoccomment">     * encrypted/decrypted over SSL/TLS currently.  This method will start</em>
<a name="223" href="#223">223</a> <em class="jxr_javadoccomment">     * to retun &lt;tt&gt;false&lt;/tt&gt; after TLS &lt;tt&gt;close_notify&lt;/tt&gt; message</em>
<a name="224" href="#224">224</a> <em class="jxr_javadoccomment">     * is sent and any messages written after then is not goinf to get encrypted.</em>
<a name="225" href="#225">225</a> <em class="jxr_javadoccomment">     */</em>
<a name="226" href="#226">226</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isSslStarted(<a href="../../../../../org/apache/mina/common/IoSession.html">IoSession</a> session) {
<a name="227" href="#227">227</a>         <a href="../../../../../org/apache/mina/filter/ssl/SslHandler.html">SslHandler</a> handler = getSslSessionHandler0(session);
<a name="228" href="#228">228</a>         <strong class="jxr_keyword">if</strong> (handler == <strong class="jxr_keyword">null</strong>) {
<a name="229" href="#229">229</a>             <strong class="jxr_keyword">return</strong> false;
<a name="230" href="#230">230</a>         }
<a name="231" href="#231">231</a> 
<a name="232" href="#232">232</a>         <strong class="jxr_keyword">synchronized</strong> (handler) {
<a name="233" href="#233">233</a>             <strong class="jxr_keyword">return</strong> !handler.isOutboundDone();
<a name="234" href="#234">234</a>         }
<a name="235" href="#235">235</a>     }
<a name="236" href="#236">236</a> 
<a name="237" href="#237">237</a>     <em class="jxr_javadoccomment">/**</em>
<a name="238" href="#238">238</a> <em class="jxr_javadoccomment">     * Stops the SSL session by sending TLS &lt;tt&gt;close_notify&lt;/tt&gt; message to</em>
<a name="239" href="#239">239</a> <em class="jxr_javadoccomment">     * initiate TLS closure.</em>
<a name="240" href="#240">240</a> <em class="jxr_javadoccomment">     *</em>
<a name="241" href="#241">241</a> <em class="jxr_javadoccomment">     * @param session the {@link IoSession} to initiate TLS closure</em>
<a name="242" href="#242">242</a> <em class="jxr_javadoccomment">     * @throws SSLException if failed to initiate TLS closure</em>
<a name="243" href="#243">243</a> <em class="jxr_javadoccomment">     * @throws IllegalArgumentException if this filter is not managing the specified session</em>
<a name="244" href="#244">244</a> <em class="jxr_javadoccomment">     */</em>
<a name="245" href="#245">245</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/common/WriteFuture.html">WriteFuture</a> stopSsl(<a href="../../../../../org/apache/mina/common/IoSession.html">IoSession</a> session) <strong class="jxr_keyword">throws</strong> SSLException {
<a name="246" href="#246">246</a>         <a href="../../../../../org/apache/mina/filter/ssl/SslHandler.html">SslHandler</a> handler = getSslSessionHandler(session);
<a name="247" href="#247">247</a>         <a href="../../../../../org/apache/mina/common/IoFilter.html">NextFilter</a> nextFilter = (NextFilter) session.getAttribute(NEXT_FILTER);
<a name="248" href="#248">248</a>         <a href="../../../../../org/apache/mina/common/WriteFuture.html">WriteFuture</a> future;
<a name="249" href="#249">249</a>         <strong class="jxr_keyword">synchronized</strong> (handler) {
<a name="250" href="#250">250</a>             future = initiateClosure(nextFilter, session);
<a name="251" href="#251">251</a>         }
<a name="252" href="#252">252</a> 
<a name="253" href="#253">253</a>         handler.flushScheduledEvents();
<a name="254" href="#254">254</a> 
<a name="255" href="#255">255</a>         <strong class="jxr_keyword">return</strong> future;
<a name="256" href="#256">256</a>     }
<a name="257" href="#257">257</a> 
<a name="258" href="#258">258</a>     <em class="jxr_javadoccomment">/**</em>
<a name="259" href="#259">259</a> <em class="jxr_javadoccomment">     * Returns &lt;tt&gt;true&lt;/tt&gt; if the engine is set to use client mode</em>
<a name="260" href="#260">260</a> <em class="jxr_javadoccomment">     * when handshaking.</em>
<a name="261" href="#261">261</a> <em class="jxr_javadoccomment">     */</em>
<a name="262" href="#262">262</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isUseClientMode() {
<a name="263" href="#263">263</a>         <strong class="jxr_keyword">return</strong> client;
<a name="264" href="#264">264</a>     }
<a name="265" href="#265">265</a> 
<a name="266" href="#266">266</a>     <em class="jxr_javadoccomment">/**</em>
<a name="267" href="#267">267</a> <em class="jxr_javadoccomment">     * Configures the engine to use client (or server) mode when handshaking.</em>
<a name="268" href="#268">268</a> <em class="jxr_javadoccomment">     */</em>
<a name="269" href="#269">269</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setUseClientMode(<strong class="jxr_keyword">boolean</strong> clientMode) {
<a name="270" href="#270">270</a>         <strong class="jxr_keyword">this</strong>.client = clientMode;
<a name="271" href="#271">271</a>     }
<a name="272" href="#272">272</a> 
<a name="273" href="#273">273</a>     <em class="jxr_javadoccomment">/**</em>
<a name="274" href="#274">274</a> <em class="jxr_javadoccomment">     * Returns &lt;tt&gt;true&lt;/tt&gt; if the engine will &lt;em&gt;require&lt;/em&gt; client authentication.</em>
<a name="275" href="#275">275</a> <em class="jxr_javadoccomment">     * This option is only useful to engines in the server mode.</em>
<a name="276" href="#276">276</a> <em class="jxr_javadoccomment">     */</em>
<a name="277" href="#277">277</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isNeedClientAuth() {
<a name="278" href="#278">278</a>         <strong class="jxr_keyword">return</strong> needClientAuth;
<a name="279" href="#279">279</a>     }
<a name="280" href="#280">280</a> 
<a name="281" href="#281">281</a>     <em class="jxr_javadoccomment">/**</em>
<a name="282" href="#282">282</a> <em class="jxr_javadoccomment">     * Configures the engine to &lt;em&gt;require&lt;/em&gt; client authentication.</em>
<a name="283" href="#283">283</a> <em class="jxr_javadoccomment">     * This option is only useful for engines in the server mode.</em>
<a name="284" href="#284">284</a> <em class="jxr_javadoccomment">     */</em>
<a name="285" href="#285">285</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setNeedClientAuth(<strong class="jxr_keyword">boolean</strong> needClientAuth) {
<a name="286" href="#286">286</a>         <strong class="jxr_keyword">this</strong>.needClientAuth = needClientAuth;
<a name="287" href="#287">287</a>     }
<a name="288" href="#288">288</a> 
<a name="289" href="#289">289</a>     <em class="jxr_javadoccomment">/**</em>
<a name="290" href="#290">290</a> <em class="jxr_javadoccomment">     * Returns &lt;tt&gt;true&lt;/tt&gt; if the engine will &lt;em&gt;request&lt;/em&gt; client authentication.</em>
<a name="291" href="#291">291</a> <em class="jxr_javadoccomment">     * This option is only useful to engines in the server mode.</em>
<a name="292" href="#292">292</a> <em class="jxr_javadoccomment">     */</em>
<a name="293" href="#293">293</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isWantClientAuth() {
<a name="294" href="#294">294</a>         <strong class="jxr_keyword">return</strong> wantClientAuth;
<a name="295" href="#295">295</a>     }
<a name="296" href="#296">296</a> 
<a name="297" href="#297">297</a>     <em class="jxr_javadoccomment">/**</em>
<a name="298" href="#298">298</a> <em class="jxr_javadoccomment">     * Configures the engine to &lt;em&gt;request&lt;/em&gt; client authentication.</em>
<a name="299" href="#299">299</a> <em class="jxr_javadoccomment">     * This option is only useful for engines in the server mode.</em>
<a name="300" href="#300">300</a> <em class="jxr_javadoccomment">     */</em>
<a name="301" href="#301">301</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setWantClientAuth(<strong class="jxr_keyword">boolean</strong> wantClientAuth) {
<a name="302" href="#302">302</a>         <strong class="jxr_keyword">this</strong>.wantClientAuth = wantClientAuth;
<a name="303" href="#303">303</a>     }
<a name="304" href="#304">304</a> 
<a name="305" href="#305">305</a>     <em class="jxr_javadoccomment">/**</em>
<a name="306" href="#306">306</a> <em class="jxr_javadoccomment">     * Returns the list of cipher suites to be enabled when {@link SSLEngine}</em>
<a name="307" href="#307">307</a> <em class="jxr_javadoccomment">     * is initialized.</em>
<a name="308" href="#308">308</a> <em class="jxr_javadoccomment">     *</em>
<a name="309" href="#309">309</a> <em class="jxr_javadoccomment">     * @return &lt;tt&gt;null&lt;/tt&gt; means 'use {@link SSLEngine}'s default.'</em>
<a name="310" href="#310">310</a> <em class="jxr_javadoccomment">     */</em>
<a name="311" href="#311">311</a>     <strong class="jxr_keyword">public</strong> String[] getEnabledCipherSuites() {
<a name="312" href="#312">312</a>         <strong class="jxr_keyword">return</strong> enabledCipherSuites;
<a name="313" href="#313">313</a>     }
<a name="314" href="#314">314</a> 
<a name="315" href="#315">315</a>     <em class="jxr_javadoccomment">/**</em>
<a name="316" href="#316">316</a> <em class="jxr_javadoccomment">     * Sets the list of cipher suites to be enabled when {@link SSLEngine}</em>
<a name="317" href="#317">317</a> <em class="jxr_javadoccomment">     * is initialized.</em>
<a name="318" href="#318">318</a> <em class="jxr_javadoccomment">     *</em>
<a name="319" href="#319">319</a> <em class="jxr_javadoccomment">     * @param cipherSuites &lt;tt&gt;null&lt;/tt&gt; means 'use {@link SSLEngine}'s default.'</em>
<a name="320" href="#320">320</a> <em class="jxr_javadoccomment">     */</em>
<a name="321" href="#321">321</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setEnabledCipherSuites(String[] cipherSuites) {
<a name="322" href="#322">322</a>         <strong class="jxr_keyword">this</strong>.enabledCipherSuites = cipherSuites;
<a name="323" href="#323">323</a>     }
<a name="324" href="#324">324</a> 
<a name="325" href="#325">325</a>     <em class="jxr_javadoccomment">/**</em>
<a name="326" href="#326">326</a> <em class="jxr_javadoccomment">     * Returns the list of protocols to be enabled when {@link SSLEngine}</em>
<a name="327" href="#327">327</a> <em class="jxr_javadoccomment">     * is initialized.</em>
<a name="328" href="#328">328</a> <em class="jxr_javadoccomment">     *</em>
<a name="329" href="#329">329</a> <em class="jxr_javadoccomment">     * @return &lt;tt&gt;null&lt;/tt&gt; means 'use {@link SSLEngine}'s default.'</em>
<a name="330" href="#330">330</a> <em class="jxr_javadoccomment">     */</em>
<a name="331" href="#331">331</a>     <strong class="jxr_keyword">public</strong> String[] getEnabledProtocols() {
<a name="332" href="#332">332</a>         <strong class="jxr_keyword">return</strong> enabledProtocols;
<a name="333" href="#333">333</a>     }
<a name="334" href="#334">334</a> 
<a name="335" href="#335">335</a>     <em class="jxr_javadoccomment">/**</em>
<a name="336" href="#336">336</a> <em class="jxr_javadoccomment">     * Sets the list of protocols to be enabled when {@link SSLEngine}</em>
<a name="337" href="#337">337</a> <em class="jxr_javadoccomment">     * is initialized.</em>
<a name="338" href="#338">338</a> <em class="jxr_javadoccomment">     *</em>
<a name="339" href="#339">339</a> <em class="jxr_javadoccomment">     * @param protocols &lt;tt&gt;null&lt;/tt&gt; means 'use {@link SSLEngine}'s default.'</em>
<a name="340" href="#340">340</a> <em class="jxr_javadoccomment">     */</em>
<a name="341" href="#341">341</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setEnabledProtocols(String[] protocols) {
<a name="342" href="#342">342</a>         <strong class="jxr_keyword">this</strong>.enabledProtocols = protocols;
<a name="343" href="#343">343</a>     }
<a name="344" href="#344">344</a> 
<a name="345" href="#345">345</a>     @Override
<a name="346" href="#346">346</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> onPreAdd(<a href="../../../../../org/apache/mina/common/IoFilterChain.html">IoFilterChain</a> parent, String name,
<a name="347" href="#347">347</a>             <a href="../../../../../org/apache/mina/common/IoFilter.html">NextFilter</a> nextFilter) <strong class="jxr_keyword">throws</strong> SSLException {
<a name="348" href="#348">348</a>         <strong class="jxr_keyword">if</strong> (parent.contains(SslFilter.<strong class="jxr_keyword">class</strong>)) {
<a name="349" href="#349">349</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException(
<a name="350" href="#350">350</a>                     <span class="jxr_string">"Only one "</span> + SslFilter.<strong class="jxr_keyword">class</strong>.getName() + <span class="jxr_string">" is permitted."</span>);
<a name="351" href="#351">351</a>         }
<a name="352" href="#352">352</a> 
<a name="353" href="#353">353</a>         <a href="../../../../../org/apache/mina/common/IoSession.html">IoSession</a> session = parent.getSession();
<a name="354" href="#354">354</a>         session.setAttribute(NEXT_FILTER, nextFilter);
<a name="355" href="#355">355</a> 
<a name="356" href="#356">356</a>         <em class="jxr_comment">// Create an SSL handler and start handshake.</em>
<a name="357" href="#357">357</a>         <a href="../../../../../org/apache/mina/filter/ssl/SslHandler.html">SslHandler</a> handler = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/filter/ssl/SslHandler.html">SslHandler</a>(<strong class="jxr_keyword">this</strong>, sslContext, session);
<a name="358" href="#358">358</a>         session.setAttribute(SSL_HANDLER, handler);
<a name="359" href="#359">359</a>     }
<a name="360" href="#360">360</a> 
<a name="361" href="#361">361</a>     @Override
<a name="362" href="#362">362</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> onPostAdd(<a href="../../../../../org/apache/mina/common/IoFilterChain.html">IoFilterChain</a> parent, String name,
<a name="363" href="#363">363</a>             <a href="../../../../../org/apache/mina/common/IoFilter.html">NextFilter</a> nextFilter) <strong class="jxr_keyword">throws</strong> SSLException {
<a name="364" href="#364">364</a>         <strong class="jxr_keyword">if</strong> (autoStart) {
<a name="365" href="#365">365</a>             initiateHandshake(nextFilter, parent.getSession());
<a name="366" href="#366">366</a>         }
<a name="367" href="#367">367</a>     }
<a name="368" href="#368">368</a> 
<a name="369" href="#369">369</a>     @Override
<a name="370" href="#370">370</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> onPreRemove(<a href="../../../../../org/apache/mina/common/IoFilterChain.html">IoFilterChain</a> parent, String name,
<a name="371" href="#371">371</a>             <a href="../../../../../org/apache/mina/common/IoFilter.html">NextFilter</a> nextFilter) <strong class="jxr_keyword">throws</strong> SSLException {
<a name="372" href="#372">372</a>         <a href="../../../../../org/apache/mina/common/IoSession.html">IoSession</a> session = parent.getSession();
<a name="373" href="#373">373</a>         stopSsl(session);
<a name="374" href="#374">374</a>         session.removeAttribute(NEXT_FILTER);
<a name="375" href="#375">375</a>         session.removeAttribute(SSL_HANDLER);
<a name="376" href="#376">376</a>     }
<a name="377" href="#377">377</a> 
<a name="378" href="#378">378</a>     <em class="jxr_comment">// IoFilter impl.</em>
<a name="379" href="#379">379</a>     @Override
<a name="380" href="#380">380</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> sessionClosed(<a href="../../../../../org/apache/mina/common/IoFilter.html">NextFilter</a> nextFilter, <a href="../../../../../org/apache/mina/common/IoSession.html">IoSession</a> session)
<a name="381" href="#381">381</a>             <strong class="jxr_keyword">throws</strong> SSLException {
<a name="382" href="#382">382</a>         <a href="../../../../../org/apache/mina/filter/ssl/SslHandler.html">SslHandler</a> handler = getSslSessionHandler(session);
<a name="383" href="#383">383</a>         <strong class="jxr_keyword">try</strong> {
<a name="384" href="#384">384</a>             <strong class="jxr_keyword">synchronized</strong> (handler) {
<a name="385" href="#385">385</a>                 <em class="jxr_comment">// release resources</em>
<a name="386" href="#386">386</a>                 handler.destroy();
<a name="387" href="#387">387</a>             }
<a name="388" href="#388">388</a> 
<a name="389" href="#389">389</a>             handler.flushScheduledEvents();
<a name="390" href="#390">390</a>         } <strong class="jxr_keyword">finally</strong> {
<a name="391" href="#391">391</a>             <em class="jxr_comment">// notify closed session</em>
<a name="392" href="#392">392</a>             nextFilter.sessionClosed(session);
<a name="393" href="#393">393</a>         }
<a name="394" href="#394">394</a>     }
<a name="395" href="#395">395</a> 
<a name="396" href="#396">396</a>     @Override
<a name="397" href="#397">397</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> messageReceived(<a href="../../../../../org/apache/mina/common/IoFilter.html">NextFilter</a> nextFilter, <a href="../../../../../org/apache/mina/common/IoSession.html">IoSession</a> session,
<a name="398" href="#398">398</a>             Object message) <strong class="jxr_keyword">throws</strong> SSLException {
<a name="399" href="#399">399</a>         <a href="../../../../../org/apache/mina/filter/ssl/SslHandler.html">SslHandler</a> handler = getSslSessionHandler(session);
<a name="400" href="#400">400</a>         <strong class="jxr_keyword">synchronized</strong> (handler) {
<a name="401" href="#401">401</a>             <strong class="jxr_keyword">if</strong> (!isSslStarted(session) &amp;&amp; handler.isInboundDone()) {
<a name="402" href="#402">402</a>                 handler.scheduleMessageReceived(nextFilter, message);
<a name="403" href="#403">403</a>             } <strong class="jxr_keyword">else</strong> {
<a name="404" href="#404">404</a>                 <a href="../../../../../org/apache/mina/common/IoBuffer.html">IoBuffer</a> buf = (IoBuffer) message;
<a name="405" href="#405">405</a>                 <strong class="jxr_keyword">try</strong> {
<a name="406" href="#406">406</a>                     <em class="jxr_comment">// forward read encrypted data to SSL handler</em>
<a name="407" href="#407">407</a>                     handler.messageReceived(nextFilter, buf.buf());
<a name="408" href="#408">408</a> 
<a name="409" href="#409">409</a>                     <em class="jxr_comment">// Handle data to be forwarded to application or written to net</em>
<a name="410" href="#410">410</a>                     handleSslData(nextFilter, handler);
<a name="411" href="#411">411</a> 
<a name="412" href="#412">412</a>                     <strong class="jxr_keyword">if</strong> (handler.isInboundDone()) {
<a name="413" href="#413">413</a>                         <strong class="jxr_keyword">if</strong> (handler.isOutboundDone()) {
<a name="414" href="#414">414</a>                             handler.destroy();
<a name="415" href="#415">415</a>                         } <strong class="jxr_keyword">else</strong> {
<a name="416" href="#416">416</a>                             initiateClosure(nextFilter, session);
<a name="417" href="#417">417</a>                         }
<a name="418" href="#418">418</a> 
<a name="419" href="#419">419</a>                         <strong class="jxr_keyword">if</strong> (buf.hasRemaining()) {
<a name="420" href="#420">420</a>                             <em class="jxr_comment">// Forward the data received after closure.</em>
<a name="421" href="#421">421</a>                             handler.scheduleMessageReceived(nextFilter, buf);
<a name="422" href="#422">422</a>                         }
<a name="423" href="#423">423</a>                     }
<a name="424" href="#424">424</a>                 } <strong class="jxr_keyword">catch</strong> (SSLException ssle) {
<a name="425" href="#425">425</a>                     <strong class="jxr_keyword">if</strong> (!handler.isHandshakeComplete()) {
<a name="426" href="#426">426</a>                         SSLException newSsle = <strong class="jxr_keyword">new</strong> SSLHandshakeException(
<a name="427" href="#427">427</a>                                 <span class="jxr_string">"SSL handshake failed."</span>);
<a name="428" href="#428">428</a>                         newSsle.initCause(ssle);
<a name="429" href="#429">429</a>                         ssle = newSsle;
<a name="430" href="#430">430</a>                     }
<a name="431" href="#431">431</a> 
<a name="432" href="#432">432</a>                     <strong class="jxr_keyword">throw</strong> ssle;
<a name="433" href="#433">433</a>                 }
<a name="434" href="#434">434</a>             }
<a name="435" href="#435">435</a>         }
<a name="436" href="#436">436</a> 
<a name="437" href="#437">437</a>         handler.flushScheduledEvents();
<a name="438" href="#438">438</a>     }
<a name="439" href="#439">439</a> 
<a name="440" href="#440">440</a>     @Override
<a name="441" href="#441">441</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> messageSent(<a href="../../../../../org/apache/mina/common/IoFilter.html">NextFilter</a> nextFilter, <a href="../../../../../org/apache/mina/common/IoSession.html">IoSession</a> session,
<a name="442" href="#442">442</a>             <a href="../../../../../org/apache/mina/common/WriteRequest.html">WriteRequest</a> writeRequest) {
<a name="443" href="#443">443</a>         <strong class="jxr_keyword">if</strong> (writeRequest instanceof EncryptedWriteRequest) {
<a name="444" href="#444">444</a>             <a href="../../../../../org/apache/mina/filter/ssl/SslFilter.html">EncryptedWriteRequest</a> wrappedRequest = (EncryptedWriteRequest) writeRequest;
<a name="445" href="#445">445</a>             nextFilter.messageSent(session, wrappedRequest.getParentRequest());
<a name="446" href="#446">446</a>         } <strong class="jxr_keyword">else</strong> {
<a name="447" href="#447">447</a>             <em class="jxr_comment">// ignore extra buffers used for handshaking</em>
<a name="448" href="#448">448</a>         }
<a name="449" href="#449">449</a>     }
<a name="450" href="#450">450</a> 
<a name="451" href="#451">451</a>     @Override
<a name="452" href="#452">452</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> exceptionCaught(<a href="../../../../../org/apache/mina/common/IoFilter.html">NextFilter</a> nextFilter, <a href="../../../../../org/apache/mina/common/IoSession.html">IoSession</a> session,
<a name="453" href="#453">453</a>             Throwable cause) <strong class="jxr_keyword">throws</strong> Exception {
<a name="454" href="#454">454</a> 
<a name="455" href="#455">455</a>         <strong class="jxr_keyword">if</strong> (cause instanceof WriteToClosedSessionException) {
<a name="456" href="#456">456</a>             <em class="jxr_comment">// Filter out SSL close notify, which is likely to fail to flush</em>
<a name="457" href="#457">457</a>             <em class="jxr_comment">// due to disconnection.</em>
<a name="458" href="#458">458</a>             <a href="../../../../../org/apache/mina/common/WriteToClosedSessionException.html">WriteToClosedSessionException</a> e = (WriteToClosedSessionException) cause;
<a name="459" href="#459">459</a>             List&lt;WriteRequest&gt; failedRequests = e.getRequests();
<a name="460" href="#460">460</a>             <strong class="jxr_keyword">boolean</strong> containsCloseNotify = false;
<a name="461" href="#461">461</a>             <strong class="jxr_keyword">for</strong> (WriteRequest r: failedRequests) {
<a name="462" href="#462">462</a>                 <strong class="jxr_keyword">if</strong> (isCloseNotify(r.getMessage())) {
<a name="463" href="#463">463</a>                     containsCloseNotify = <strong class="jxr_keyword">true</strong>;
<a name="464" href="#464">464</a>                     <strong class="jxr_keyword">break</strong>;
<a name="465" href="#465">465</a>                 }
<a name="466" href="#466">466</a>             }
<a name="467" href="#467">467</a>             
<a name="468" href="#468">468</a>             <strong class="jxr_keyword">if</strong> (containsCloseNotify) {
<a name="469" href="#469">469</a>                 <strong class="jxr_keyword">if</strong> (failedRequests.size() == 1) {
<a name="470" href="#470">470</a>                     <em class="jxr_comment">// close notify is the only failed request; bail out.</em>
<a name="471" href="#471">471</a>                     <strong class="jxr_keyword">return</strong>;
<a name="472" href="#472">472</a>                 }
<a name="473" href="#473">473</a>                 
<a name="474" href="#474">474</a>                 List&lt;WriteRequest&gt; newFailedRequests =
<a name="475" href="#475">475</a>                     <strong class="jxr_keyword">new</strong> ArrayList&lt;WriteRequest&gt;(failedRequests.size() - 1);
<a name="476" href="#476">476</a>                 <strong class="jxr_keyword">for</strong> (WriteRequest r: failedRequests) {
<a name="477" href="#477">477</a>                     <strong class="jxr_keyword">if</strong> (!isCloseNotify(r.getMessage())) {
<a name="478" href="#478">478</a>                         newFailedRequests.add(r);
<a name="479" href="#479">479</a>                     }
<a name="480" href="#480">480</a>                 }
<a name="481" href="#481">481</a>                 
<a name="482" href="#482">482</a>                 <strong class="jxr_keyword">if</strong> (newFailedRequests.isEmpty()) {
<a name="483" href="#483">483</a>                     <em class="jxr_comment">// the failedRequests were full with close notify; bail out.</em>
<a name="484" href="#484">484</a>                     <strong class="jxr_keyword">return</strong>;
<a name="485" href="#485">485</a>                 }
<a name="486" href="#486">486</a>                 
<a name="487" href="#487">487</a>                 cause = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/common/WriteToClosedSessionException.html">WriteToClosedSessionException</a>(
<a name="488" href="#488">488</a>                         newFailedRequests, cause.getMessage(), cause.getCause());
<a name="489" href="#489">489</a>             }
<a name="490" href="#490">490</a>         }
<a name="491" href="#491">491</a>         
<a name="492" href="#492">492</a>         nextFilter.exceptionCaught(session, cause);
<a name="493" href="#493">493</a>     }
<a name="494" href="#494">494</a>         
<a name="495" href="#495">495</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> isCloseNotify(Object message) {
<a name="496" href="#496">496</a>         <strong class="jxr_keyword">if</strong> (!(message instanceof IoBuffer)) {
<a name="497" href="#497">497</a>             <strong class="jxr_keyword">return</strong> false;
<a name="498" href="#498">498</a>         }
<a name="499" href="#499">499</a>         
<a name="500" href="#500">500</a>         <a href="../../../../../org/apache/mina/common/IoBuffer.html">IoBuffer</a> buf = (IoBuffer) message;
<a name="501" href="#501">501</a>         <strong class="jxr_keyword">int</strong> offset = buf.position();
<a name="502" href="#502">502</a>         <strong class="jxr_keyword">return</strong> buf.remaining() == 23 &amp;&amp;
<a name="503" href="#503">503</a>                buf.get(offset + 0) == 0x15 &amp;&amp; buf.get(offset + 1) == 0x03 &amp;&amp;
<a name="504" href="#504">504</a>                buf.get(offset + 2) == 0x01 &amp;&amp; buf.get(offset + 3) == 0x00 &amp;&amp;
<a name="505" href="#505">505</a>                buf.get(offset + 4) == 0x12;
<a name="506" href="#506">506</a>     }
<a name="507" href="#507">507</a> 
<a name="508" href="#508">508</a>     @Override
<a name="509" href="#509">509</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> filterWrite(<a href="../../../../../org/apache/mina/common/IoFilter.html">NextFilter</a> nextFilter, <a href="../../../../../org/apache/mina/common/IoSession.html">IoSession</a> session,
<a name="510" href="#510">510</a>             <a href="../../../../../org/apache/mina/common/WriteRequest.html">WriteRequest</a> writeRequest) <strong class="jxr_keyword">throws</strong> SSLException {
<a name="511" href="#511">511</a>         <strong class="jxr_keyword">boolean</strong> needsFlush = <strong class="jxr_keyword">true</strong>;
<a name="512" href="#512">512</a>         <a href="../../../../../org/apache/mina/filter/ssl/SslHandler.html">SslHandler</a> handler = getSslSessionHandler(session);
<a name="513" href="#513">513</a>         <strong class="jxr_keyword">synchronized</strong> (handler) {
<a name="514" href="#514">514</a>             <strong class="jxr_keyword">if</strong> (!isSslStarted(session)) {
<a name="515" href="#515">515</a>                 handler.scheduleFilterWrite(nextFilter,
<a name="516" href="#516">516</a>                         writeRequest);
<a name="517" href="#517">517</a>             }
<a name="518" href="#518">518</a>             <em class="jxr_comment">// Don't encrypt the data if encryption is disabled.</em>
<a name="519" href="#519">519</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (session.containsAttribute(DISABLE_ENCRYPTION_ONCE)) {
<a name="520" href="#520">520</a>                 <em class="jxr_comment">// Remove the marker attribute because it is temporary.</em>
<a name="521" href="#521">521</a>                 session.removeAttribute(DISABLE_ENCRYPTION_ONCE);
<a name="522" href="#522">522</a>                 handler.scheduleFilterWrite(nextFilter,
<a name="523" href="#523">523</a>                         writeRequest);
<a name="524" href="#524">524</a>             } <strong class="jxr_keyword">else</strong> {
<a name="525" href="#525">525</a>                 <em class="jxr_comment">// Otherwise, encrypt the buffer.</em>
<a name="526" href="#526">526</a>                 <a href="../../../../../org/apache/mina/common/IoBuffer.html">IoBuffer</a> buf = (IoBuffer) writeRequest.getMessage();
<a name="527" href="#527">527</a> 
<a name="528" href="#528">528</a>                 <strong class="jxr_keyword">if</strong> (handler.isWritingEncryptedData()) {
<a name="529" href="#529">529</a>                     <em class="jxr_comment">// data already encrypted; simply return buffer</em>
<a name="530" href="#530">530</a>                     handler.scheduleFilterWrite(nextFilter, writeRequest);
<a name="531" href="#531">531</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (handler.isHandshakeComplete()) {
<a name="532" href="#532">532</a>                     <em class="jxr_comment">// SSL encrypt</em>
<a name="533" href="#533">533</a>                     <strong class="jxr_keyword">int</strong> pos = buf.position();
<a name="534" href="#534">534</a>                     handler.encrypt(buf.buf());
<a name="535" href="#535">535</a>                     buf.position(pos);
<a name="536" href="#536">536</a>                     <a href="../../../../../org/apache/mina/common/IoBuffer.html">IoBuffer</a> encryptedBuffer = handler.fetchOutNetBuffer();
<a name="537" href="#537">537</a>                     handler.scheduleFilterWrite(
<a name="538" href="#538">538</a>                             nextFilter,
<a name="539" href="#539">539</a>                             <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/filter/ssl/SslFilter.html">EncryptedWriteRequest</a>(
<a name="540" href="#540">540</a>                                     writeRequest, encryptedBuffer));
<a name="541" href="#541">541</a>                 } <strong class="jxr_keyword">else</strong> {
<a name="542" href="#542">542</a>                     <strong class="jxr_keyword">if</strong> (session.isConnected()) {
<a name="543" href="#543">543</a>                         <em class="jxr_comment">// Handshake not complete yet.</em>
<a name="544" href="#544">544</a>                         handler.schedulePreHandshakeWriteRequest(nextFilter,
<a name="545" href="#545">545</a>                                 writeRequest);
<a name="546" href="#546">546</a>                     }
<a name="547" href="#547">547</a>                     needsFlush = false;
<a name="548" href="#548">548</a>                 }
<a name="549" href="#549">549</a>             }
<a name="550" href="#550">550</a>         }
<a name="551" href="#551">551</a> 
<a name="552" href="#552">552</a>         <strong class="jxr_keyword">if</strong> (needsFlush) {
<a name="553" href="#553">553</a>             handler.flushScheduledEvents();
<a name="554" href="#554">554</a>         }
<a name="555" href="#555">555</a>     }
<a name="556" href="#556">556</a> 
<a name="557" href="#557">557</a>     @Override
<a name="558" href="#558">558</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> filterClose(<strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/common/IoFilter.html">NextFilter</a> nextFilter, <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/common/IoSession.html">IoSession</a> session)
<a name="559" href="#559">559</a>             <strong class="jxr_keyword">throws</strong> SSLException {
<a name="560" href="#560">560</a>         <a href="../../../../../org/apache/mina/filter/ssl/SslHandler.html">SslHandler</a> handler = getSslSessionHandler0(session);
<a name="561" href="#561">561</a>         <strong class="jxr_keyword">if</strong> (handler == <strong class="jxr_keyword">null</strong>) {
<a name="562" href="#562">562</a>             <em class="jxr_comment">// The connection might already have closed, or</em>
<a name="563" href="#563">563</a>             <em class="jxr_comment">// SSL might have not started yet.</em>
<a name="564" href="#564">564</a>             nextFilter.filterClose(session);
<a name="565" href="#565">565</a>             <strong class="jxr_keyword">return</strong>;
<a name="566" href="#566">566</a>         }
<a name="567" href="#567">567</a> 
<a name="568" href="#568">568</a>         <a href="../../../../../org/apache/mina/common/WriteFuture.html">WriteFuture</a> future = <strong class="jxr_keyword">null</strong>;
<a name="569" href="#569">569</a>         <strong class="jxr_keyword">try</strong> {
<a name="570" href="#570">570</a>             <strong class="jxr_keyword">synchronized</strong> (handler) {
<a name="571" href="#571">571</a>                 <strong class="jxr_keyword">if</strong> (isSslStarted(session)) {
<a name="572" href="#572">572</a>                     future = initiateClosure(nextFilter, session);
<a name="573" href="#573">573</a>                     future.addListener(<strong class="jxr_keyword">new</strong> IoFutureListener&lt;IoFuture&gt;() {
<a name="574" href="#574">574</a>                         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> operationComplete(<a href="../../../../../org/apache/mina/common/IoFuture.html">IoFuture</a> future) {
<a name="575" href="#575">575</a>                             nextFilter.filterClose(session);
<a name="576" href="#576">576</a>                         }
<a name="577" href="#577">577</a>                     });
<a name="578" href="#578">578</a>                 }
<a name="579" href="#579">579</a>             }
<a name="580" href="#580">580</a> 
<a name="581" href="#581">581</a>             handler.flushScheduledEvents();
<a name="582" href="#582">582</a>         } <strong class="jxr_keyword">finally</strong> {
<a name="583" href="#583">583</a>             <strong class="jxr_keyword">if</strong> (future == <strong class="jxr_keyword">null</strong>) {
<a name="584" href="#584">584</a>                 nextFilter.filterClose(session);
<a name="585" href="#585">585</a>             }
<a name="586" href="#586">586</a>         }
<a name="587" href="#587">587</a>     }
<a name="588" href="#588">588</a> 
<a name="589" href="#589">589</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> initiateHandshake(<a href="../../../../../org/apache/mina/common/IoFilter.html">NextFilter</a> nextFilter, <a href="../../../../../org/apache/mina/common/IoSession.html">IoSession</a> session)
<a name="590" href="#590">590</a>             <strong class="jxr_keyword">throws</strong> SSLException {
<a name="591" href="#591">591</a>         <a href="../../../../../org/apache/mina/filter/ssl/SslHandler.html">SslHandler</a> handler = getSslSessionHandler(session);
<a name="592" href="#592">592</a>         <strong class="jxr_keyword">synchronized</strong> (handler) {
<a name="593" href="#593">593</a>             handler.handshake(nextFilter);
<a name="594" href="#594">594</a>         }
<a name="595" href="#595">595</a>         handler.flushScheduledEvents();
<a name="596" href="#596">596</a>     }
<a name="597" href="#597">597</a> 
<a name="598" href="#598">598</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/mina/common/WriteFuture.html">WriteFuture</a> initiateClosure(<a href="../../../../../org/apache/mina/common/IoFilter.html">NextFilter</a> nextFilter, <a href="../../../../../org/apache/mina/common/IoSession.html">IoSession</a> session)
<a name="599" href="#599">599</a>             <strong class="jxr_keyword">throws</strong> SSLException {
<a name="600" href="#600">600</a>         <a href="../../../../../org/apache/mina/filter/ssl/SslHandler.html">SslHandler</a> handler = getSslSessionHandler(session);
<a name="601" href="#601">601</a>         <em class="jxr_comment">// if already shut down</em>
<a name="602" href="#602">602</a>         <strong class="jxr_keyword">if</strong> (!handler.closeOutbound()) {
<a name="603" href="#603">603</a>             <strong class="jxr_keyword">return</strong> DefaultWriteFuture.newNotWrittenFuture(
<a name="604" href="#604">604</a>                     session, <strong class="jxr_keyword">new</strong> IllegalStateException(<span class="jxr_string">"SSL session is shut down already."</span>));
<a name="605" href="#605">605</a>         }
<a name="606" href="#606">606</a> 
<a name="607" href="#607">607</a>         <em class="jxr_comment">// there might be data to write out here?</em>
<a name="608" href="#608">608</a>         <a href="../../../../../org/apache/mina/common/WriteFuture.html">WriteFuture</a> future = handler.writeNetBuffer(nextFilter);
<a name="609" href="#609">609</a>         <strong class="jxr_keyword">if</strong> (future == <strong class="jxr_keyword">null</strong>) {
<a name="610" href="#610">610</a>             future = DefaultWriteFuture.newWrittenFuture(session);
<a name="611" href="#611">611</a>         }
<a name="612" href="#612">612</a> 
<a name="613" href="#613">613</a>         <strong class="jxr_keyword">if</strong> (handler.isInboundDone()) {
<a name="614" href="#614">614</a>             handler.destroy();
<a name="615" href="#615">615</a>         }
<a name="616" href="#616">616</a> 
<a name="617" href="#617">617</a>         <strong class="jxr_keyword">if</strong> (session.containsAttribute(USE_NOTIFICATION)) {
<a name="618" href="#618">618</a>             handler.scheduleMessageReceived(nextFilter, SESSION_UNSECURED);
<a name="619" href="#619">619</a>         }
<a name="620" href="#620">620</a> 
<a name="621" href="#621">621</a>         <strong class="jxr_keyword">return</strong> future;
<a name="622" href="#622">622</a>     }
<a name="623" href="#623">623</a> 
<a name="624" href="#624">624</a>     <em class="jxr_comment">// Utiliities</em>
<a name="625" href="#625">625</a> 
<a name="626" href="#626">626</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> handleSslData(<a href="../../../../../org/apache/mina/common/IoFilter.html">NextFilter</a> nextFilter, <a href="../../../../../org/apache/mina/filter/ssl/SslHandler.html">SslHandler</a> handler)
<a name="627" href="#627">627</a>             <strong class="jxr_keyword">throws</strong> SSLException {
<a name="628" href="#628">628</a>         <em class="jxr_comment">// Flush any buffered write requests occurred before handshaking.</em>
<a name="629" href="#629">629</a>         <strong class="jxr_keyword">if</strong> (handler.isHandshakeComplete()) {
<a name="630" href="#630">630</a>             handler.flushPreHandshakeEvents();
<a name="631" href="#631">631</a>         }
<a name="632" href="#632">632</a> 
<a name="633" href="#633">633</a>         <em class="jxr_comment">// Write encrypted data to be written (if any)</em>
<a name="634" href="#634">634</a>         handler.writeNetBuffer(nextFilter);
<a name="635" href="#635">635</a> 
<a name="636" href="#636">636</a>         <em class="jxr_comment">// handle app. data read (if any)</em>
<a name="637" href="#637">637</a>         handleAppDataRead(nextFilter, handler);
<a name="638" href="#638">638</a>     }
<a name="639" href="#639">639</a> 
<a name="640" href="#640">640</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> handleAppDataRead(<a href="../../../../../org/apache/mina/common/IoFilter.html">NextFilter</a> nextFilter, <a href="../../../../../org/apache/mina/filter/ssl/SslHandler.html">SslHandler</a> handler) {
<a name="641" href="#641">641</a>         <em class="jxr_comment">// forward read app data</em>
<a name="642" href="#642">642</a>         <a href="../../../../../org/apache/mina/common/IoBuffer.html">IoBuffer</a> readBuffer = handler.fetchAppBuffer();
<a name="643" href="#643">643</a>         <strong class="jxr_keyword">if</strong> (readBuffer.hasRemaining()) {
<a name="644" href="#644">644</a>             handler.scheduleMessageReceived(nextFilter, readBuffer);
<a name="645" href="#645">645</a>         }
<a name="646" href="#646">646</a>     }
<a name="647" href="#647">647</a> 
<a name="648" href="#648">648</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/mina/filter/ssl/SslHandler.html">SslHandler</a> getSslSessionHandler(<a href="../../../../../org/apache/mina/common/IoSession.html">IoSession</a> session) {
<a name="649" href="#649">649</a>         <a href="../../../../../org/apache/mina/filter/ssl/SslHandler.html">SslHandler</a> handler = getSslSessionHandler0(session);
<a name="650" href="#650">650</a>         <strong class="jxr_keyword">if</strong> (handler == <strong class="jxr_keyword">null</strong>) {
<a name="651" href="#651">651</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException();
<a name="652" href="#652">652</a>         }
<a name="653" href="#653">653</a>         <strong class="jxr_keyword">if</strong> (handler.getParent() != <strong class="jxr_keyword">this</strong>) {
<a name="654" href="#654">654</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Not managed by this filter."</span>);
<a name="655" href="#655">655</a>         }
<a name="656" href="#656">656</a>         <strong class="jxr_keyword">return</strong> handler;
<a name="657" href="#657">657</a>     }
<a name="658" href="#658">658</a> 
<a name="659" href="#659">659</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/mina/filter/ssl/SslHandler.html">SslHandler</a> getSslSessionHandler0(<a href="../../../../../org/apache/mina/common/IoSession.html">IoSession</a> session) {
<a name="660" href="#660">660</a>         <strong class="jxr_keyword">return</strong> (SslHandler) session.getAttribute(SSL_HANDLER);
<a name="661" href="#661">661</a>     }
<a name="662" href="#662">662</a> 
<a name="663" href="#663">663</a>     <em class="jxr_javadoccomment">/**</em>
<a name="664" href="#664">664</a> <em class="jxr_javadoccomment">     * A message that is sent from {@link SslFilter} when the connection became</em>
<a name="665" href="#665">665</a> <em class="jxr_javadoccomment">     * secure or is not secure anymore.</em>
<a name="666" href="#666">666</a> <em class="jxr_javadoccomment">     *</em>
<a name="667" href="#667">667</a> <em class="jxr_javadoccomment">     * @author The Apache MINA Project (dev@mina.apache.org)</em>
<a name="668" href="#668">668</a> <em class="jxr_javadoccomment">     * @version $Rev: 616100 $, $Date: 2008-01-28 15:58:32 -0700 (Mon, 28 Jan 2008) $</em>
<a name="669" href="#669">669</a> <em class="jxr_javadoccomment">     */</em>
<a name="670" href="#670">670</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/mina/filter/ssl/SslFilter.html">SslFilterMessage</a> {
<a name="671" href="#671">671</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String name;
<a name="672" href="#672">672</a> 
<a name="673" href="#673">673</a>         <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/mina/filter/ssl/SslFilter.html">SslFilterMessage</a>(String name) {
<a name="674" href="#674">674</a>             <strong class="jxr_keyword">this</strong>.name = name;
<a name="675" href="#675">675</a>         }
<a name="676" href="#676">676</a> 
<a name="677" href="#677">677</a>         @Override
<a name="678" href="#678">678</a>         <strong class="jxr_keyword">public</strong> String toString() {
<a name="679" href="#679">679</a>             <strong class="jxr_keyword">return</strong> name;
<a name="680" href="#680">680</a>         }
<a name="681" href="#681">681</a>     }
<a name="682" href="#682">682</a> 
<a name="683" href="#683">683</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/mina/filter/ssl/SslFilter.html">EncryptedWriteRequest</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../../org/apache/mina/common/WriteRequestWrapper.html">WriteRequestWrapper</a> {
<a name="684" href="#684">684</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/common/IoBuffer.html">IoBuffer</a> encryptedMessage;
<a name="685" href="#685">685</a> 
<a name="686" href="#686">686</a>         <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/mina/filter/ssl/SslFilter.html">EncryptedWriteRequest</a>(<a href="../../../../../org/apache/mina/common/WriteRequest.html">WriteRequest</a> writeRequest,
<a name="687" href="#687">687</a>                 <a href="../../../../../org/apache/mina/common/IoBuffer.html">IoBuffer</a> encryptedMessage) {
<a name="688" href="#688">688</a>             <strong class="jxr_keyword">super</strong>(writeRequest);
<a name="689" href="#689">689</a>             <strong class="jxr_keyword">this</strong>.encryptedMessage = encryptedMessage;
<a name="690" href="#690">690</a>         }
<a name="691" href="#691">691</a> 
<a name="692" href="#692">692</a>         @Override
<a name="693" href="#693">693</a>         <strong class="jxr_keyword">public</strong> Object getMessage() {
<a name="694" href="#694">694</a>             <strong class="jxr_keyword">return</strong> encryptedMessage;
<a name="695" href="#695">695</a>         }
<a name="696" href="#696">696</a>     }
<a name="697" href="#697">697</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

