<!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=ISO-8859-1" /><title>SSLFilter xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/mina/io/filter/SSLFilter.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <em class="comment">/*</em>
<a name="2" href="#2">2</a>   <em class="comment"> *   @(#) $Id: SSLFilter.java 264677 2005-08-30 02:44:35Z trustin $</em>
<a name="3" href="#3">3</a>   <em class="comment"> *</em>
<a name="4" href="#4">4</a>   <em class="comment"> *   Copyright 2004 The Apache Software Foundation</em>
<a name="5" href="#5">5</a>   <em class="comment"> *</em>
<a name="6" href="#6">6</a>   <em class="comment"> *   Licensed under the Apache License, Version 2.0 (the "License");</em>
<a name="7" href="#7">7</a>   <em class="comment"> *   you may not use this file except in compliance with the License.</em>
<a name="8" href="#8">8</a>   <em class="comment"> *   You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="comment"> *</em>
<a name="10" href="#10">10</a>  <em class="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="comment"> *</em>
<a name="12" href="#12">12</a>  <em class="comment"> *   Unless required by applicable law or agreed to in writing, software</em>
<a name="13" href="#13">13</a>  <em class="comment"> *   distributed under the License is distributed on an "AS IS" BASIS,</em>
<a name="14" href="#14">14</a>  <em class="comment"> *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a name="15" href="#15">15</a>  <em class="comment"> *   See the License for the specific language governing permissions and</em>
<a name="16" href="#16">16</a>  <em class="comment"> *   limitations under the License.</em>
<a name="17" href="#17">17</a>  <em class="comment"> *</em>
<a name="18" href="#18">18</a>  <em class="comment"> */</em>
<a name="19" href="#19">19</a>  <strong>package</strong> <a href="../../../../../org/apache/mina/io/filter/package-summary.html">org.apache.mina.io.filter</a>;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  <strong>import</strong> java.util.logging.Level;
<a name="22" href="#22">22</a>  <strong>import</strong> java.util.logging.Logger;
<a name="23" href="#23">23</a>  
<a name="24" href="#24">24</a>  <strong>import</strong> javax.net.ssl.SSLContext;
<a name="25" href="#25">25</a>  <strong>import</strong> javax.net.ssl.SSLEngine;
<a name="26" href="#26">26</a>  <strong>import</strong> javax.net.ssl.SSLException;
<a name="27" href="#27">27</a>  <strong>import</strong> javax.net.ssl.SSLHandshakeException;
<a name="28" href="#28">28</a>  <strong>import</strong> javax.net.ssl.SSLSession;
<a name="29" href="#29">29</a>  
<a name="30" href="#30">30</a>  <strong>import</strong> org.apache.mina.common.ByteBuffer;
<a name="31" href="#31">31</a>  <strong>import</strong> org.apache.mina.io.IoFilterAdapter;
<a name="32" href="#32">32</a>  <strong>import</strong> org.apache.mina.io.IoHandler;
<a name="33" href="#33">33</a>  <strong>import</strong> org.apache.mina.io.IoSession;
<a name="34" href="#34">34</a>  
<a name="35" href="#35">35</a>  <em>/**<em>*</em></em>
<a name="36" href="#36">36</a>  <em> * An SSL filter that encrypts and decrypts the data exchanged in the session.</em>
<a name="37" href="#37">37</a>  <em> * This filter uses an {@link SSLEngine} which was introduced in Java 5, so </em>
<a name="38" href="#38">38</a>  <em> * Java version 5 or above is mandatory to use this filter. And please note that</em>
<a name="39" href="#39">39</a>  <em> * this filter only works for TCP/IP connections.</em>
<a name="40" href="#40">40</a>  <em> * &lt;p></em>
<a name="41" href="#41">41</a>  <em> * This filter logs debug information in {@link Level#FINEST} using {@link Logger}.</em>
<a name="42" href="#42">42</a>  <em> * </em>
<a name="43" href="#43">43</a>  <em> * @author The Apache Directory Project (dev@directory.apache.org)</em>
<a name="44" href="#44">44</a>  <em> * @version $Rev: 264677 $, $Date: 2005-08-30 11:44:35 +0900 $</em>
<a name="45" href="#45">45</a>  <em> */</em>
<a name="46" href="#46">46</a>  <strong>public</strong> <strong>class</strong> <a href="../../../../../org/apache/mina/io/filter/SSLFilter.html">SSLFilter</a> <strong>extends</strong> <a href="../../../../../org/apache/mina/io/IoFilterAdapter.html">IoFilterAdapter</a>
<a name="47" href="#47">47</a>  {
<a name="48" href="#48">48</a>      <em>/**<em>*</em></em>
<a name="49" href="#49">49</a>  <em>     * Session attribute key that stores underlying {@link SSLSession}</em>
<a name="50" href="#50">50</a>  <em>     * for each session.</em>
<a name="51" href="#51">51</a>  <em>     */</em>
<a name="52" href="#52">52</a>      <strong>public</strong> <strong>static</strong> <strong>final</strong> String SSL_SESSION = SSLFilter.<strong>class</strong>.getName() + <span class="string">".SSLSession"</span>;
<a name="53" href="#53">53</a>      
<a name="54" href="#54">54</a>      <strong>private</strong> <strong>static</strong> <strong>final</strong> String SSL_HANDLER = SSLFilter.<strong>class</strong>.getName() + <span class="string">".SSLHandler"</span>;
<a name="55" href="#55">55</a>  
<a name="56" href="#56">56</a>      <strong>private</strong> <strong>static</strong> <strong>final</strong> Logger log = Logger.getLogger( SSLFilter.<strong>class</strong>.getName() );
<a name="57" href="#57">57</a>  
<a name="58" href="#58">58</a>      <em>/**<em>*</em></em>
<a name="59" href="#59">59</a>  <em>     * A marker which is passed with {@link IoHandler#dataWritten(IoSession, Object)}</em>
<a name="60" href="#60">60</a>  <em>     * when &lt;tt>SSLFilter&lt;/tt> writes data other then user actually requested.</em>
<a name="61" href="#61">61</a>  <em>     */</em>
<a name="62" href="#62">62</a>      <strong>private</strong> <strong>static</strong> <strong>final</strong> Object SSL_MARKER = <strong>new</strong> Object()
<a name="63" href="#63">63</a>      {
<a name="64" href="#64">64</a>          <strong>public</strong> String toString()
<a name="65" href="#65">65</a>          {
<a name="66" href="#66">66</a>              <strong>return</strong> <span class="string">"SSL_MARKER"</span>;
<a name="67" href="#67">67</a>          }
<a name="68" href="#68">68</a>      };
<a name="69" href="#69">69</a>      
<a name="70" href="#70">70</a>      <em class="comment">// SSL Context</em>
<a name="71" href="#71">71</a>      <strong>private</strong> SSLContext sslContext;
<a name="72" href="#72">72</a>  
<a name="73" href="#73">73</a>      <strong>private</strong> <strong>boolean</strong> client;
<a name="74" href="#74">74</a>      <strong>private</strong> <strong>boolean</strong> needClientAuth;
<a name="75" href="#75">75</a>      <strong>private</strong> <strong>boolean</strong> wantClientAuth;
<a name="76" href="#76">76</a>      <strong>private</strong> String[] enabledCipherSuites;
<a name="77" href="#77">77</a>      <strong>private</strong> String[] enabledProtocols;
<a name="78" href="#78">78</a>  
<a name="79" href="#79">79</a>      <em>/**<em>*</em></em>
<a name="80" href="#80">80</a>  <em>     * Creates a new SSL filter using the specified {@link SSLContext}.</em>
<a name="81" href="#81">81</a>  <em>     */</em>
<a name="82" href="#82">82</a>      <strong>public</strong> <a href="../../../../../org/apache/mina/io/filter/SSLFilter.html">SSLFilter</a>( SSLContext sslContext )
<a name="83" href="#83">83</a>      {
<a name="84" href="#84">84</a>          <strong>if</strong>( sslContext == <strong>null</strong> )
<a name="85" href="#85">85</a>          {
<a name="86" href="#86">86</a>              <strong>throw</strong> <strong>new</strong> NullPointerException( <span class="string">"sslContext"</span> );
<a name="87" href="#87">87</a>          }
<a name="88" href="#88">88</a>  
<a name="89" href="#89">89</a>          <strong>this</strong>.sslContext = sslContext;
<a name="90" href="#90">90</a>      }
<a name="91" href="#91">91</a>      
<a name="92" href="#92">92</a>      <em>/**<em>*</em></em>
<a name="93" href="#93">93</a>  <em>     * Returns the underlying {@link SSLSession} for the specified session.</em>
<a name="94" href="#94">94</a>  <em>     * </em>
<a name="95" href="#95">95</a>  <em>     * @return &lt;tt>null&lt;/tt> if no {@link SSLSession} is initialized yet.</em>
<a name="96" href="#96">96</a>  <em>     */</em>
<a name="97" href="#97">97</a>      <strong>public</strong> SSLSession getSSLSession( IoSession session )
<a name="98" href="#98">98</a>      {
<a name="99" href="#99">99</a>          <strong>return</strong> ( SSLSession ) session.getAttribute( SSL_SESSION );
<a name="100" href="#100">100</a>     }
<a name="101" href="#101">101</a> 
<a name="102" href="#102">102</a>     <em>/**<em>*</em></em>
<a name="103" href="#103">103</a> <em>     * Returns &lt;tt>true&lt;/tt> if the engine is set to use client mode</em>
<a name="104" href="#104">104</a> <em>     * when handshaking.</em>
<a name="105" href="#105">105</a> <em>     */</em>
<a name="106" href="#106">106</a>     <strong>public</strong> <strong>boolean</strong> isUseClientMode()
<a name="107" href="#107">107</a>     {
<a name="108" href="#108">108</a>         <strong>return</strong> client;
<a name="109" href="#109">109</a>     }
<a name="110" href="#110">110</a>     
<a name="111" href="#111">111</a>     <em>/**<em>*</em></em>
<a name="112" href="#112">112</a> <em>     * Configures the engine to use client (or server) mode when handshaking.</em>
<a name="113" href="#113">113</a> <em>     */</em>
<a name="114" href="#114">114</a>     <strong>public</strong> <strong>void</strong> setUseClientMode( <strong>boolean</strong> clientMode )
<a name="115" href="#115">115</a>     {
<a name="116" href="#116">116</a>         <strong>this</strong>.client = clientMode;
<a name="117" href="#117">117</a>     }
<a name="118" href="#118">118</a>     
<a name="119" href="#119">119</a>     <em>/**<em>*</em></em>
<a name="120" href="#120">120</a> <em>     * Returns &lt;tt>true&lt;/tt> if the engine will &lt;em>require&lt;/em> client authentication.</em>
<a name="121" href="#121">121</a> <em>     * This option is only useful to engines in the server mode.</em>
<a name="122" href="#122">122</a> <em>     */</em>
<a name="123" href="#123">123</a>     <strong>public</strong> <strong>boolean</strong> isNeedClientAuth()
<a name="124" href="#124">124</a>     {
<a name="125" href="#125">125</a>         <strong>return</strong> needClientAuth;
<a name="126" href="#126">126</a>     }
<a name="127" href="#127">127</a> 
<a name="128" href="#128">128</a>     <em>/**<em>*</em></em>
<a name="129" href="#129">129</a> <em>     * Configures the engine to &lt;em>require&lt;/em> client authentication.</em>
<a name="130" href="#130">130</a> <em>     * This option is only useful for engines in the server mode.</em>
<a name="131" href="#131">131</a> <em>     */</em>
<a name="132" href="#132">132</a>     <strong>public</strong> <strong>void</strong> setNeedClientAuth( <strong>boolean</strong> needClientAuth )
<a name="133" href="#133">133</a>     {
<a name="134" href="#134">134</a>         <strong>this</strong>.needClientAuth = needClientAuth;
<a name="135" href="#135">135</a>     }
<a name="136" href="#136">136</a>     
<a name="137" href="#137">137</a>     
<a name="138" href="#138">138</a>     <em>/**<em>*</em></em>
<a name="139" href="#139">139</a> <em>     * Returns &lt;tt>true&lt;/tt> if the engine will &lt;em>request&lt;/em> client authentication.</em>
<a name="140" href="#140">140</a> <em>     * This option is only useful to engines in the server mode.</em>
<a name="141" href="#141">141</a> <em>     */</em>
<a name="142" href="#142">142</a>     <strong>public</strong> <strong>boolean</strong> isWantClientAuth()
<a name="143" href="#143">143</a>     {
<a name="144" href="#144">144</a>         <strong>return</strong> wantClientAuth;
<a name="145" href="#145">145</a>     }
<a name="146" href="#146">146</a>     
<a name="147" href="#147">147</a>     <em>/**<em>*</em></em>
<a name="148" href="#148">148</a> <em>     * Configures the engine to &lt;em>request&lt;/em> client authentication.</em>
<a name="149" href="#149">149</a> <em>     * This option is only useful for engines in the server mode.</em>
<a name="150" href="#150">150</a> <em>     */</em>
<a name="151" href="#151">151</a>     <strong>public</strong> <strong>void</strong> setWantClientAuth( <strong>boolean</strong> wantClientAuth )
<a name="152" href="#152">152</a>     {
<a name="153" href="#153">153</a>         <strong>this</strong>.wantClientAuth = wantClientAuth;
<a name="154" href="#154">154</a>     }
<a name="155" href="#155">155</a>     
<a name="156" href="#156">156</a>     <em>/**<em>*</em></em>
<a name="157" href="#157">157</a> <em>     * Returns the list of cipher suites to be enabled when {@link SSLEngine}</em>
<a name="158" href="#158">158</a> <em>     * is initialized.</em>
<a name="159" href="#159">159</a> <em>     * </em>
<a name="160" href="#160">160</a> <em>     * @return &lt;tt>null&lt;/tt> means 'use {@link SSLEngine}'s default.'</em>
<a name="161" href="#161">161</a> <em>     */</em>
<a name="162" href="#162">162</a>     <strong>public</strong> String[] getEnabledCipherSuites()
<a name="163" href="#163">163</a>     {
<a name="164" href="#164">164</a>         <strong>return</strong> enabledCipherSuites;
<a name="165" href="#165">165</a>     }
<a name="166" href="#166">166</a>     
<a name="167" href="#167">167</a>     <em>/**<em>*</em></em>
<a name="168" href="#168">168</a> <em>     * Sets the list of cipher suites to be enabled when {@link SSLEngine}</em>
<a name="169" href="#169">169</a> <em>     * is initialized.</em>
<a name="170" href="#170">170</a> <em>     * </em>
<a name="171" href="#171">171</a> <em>     * @param cipherSuites &lt;tt>null&lt;/tt> means 'use {@link SSLEngine}'s default.'</em>
<a name="172" href="#172">172</a> <em>     */</em>
<a name="173" href="#173">173</a>     <strong>public</strong> <strong>void</strong> setEnabledCipherSuites( String[] cipherSuites )
<a name="174" href="#174">174</a>     {
<a name="175" href="#175">175</a>         <strong>this</strong>.enabledCipherSuites = cipherSuites;
<a name="176" href="#176">176</a>     }
<a name="177" href="#177">177</a> 
<a name="178" href="#178">178</a>     <em>/**<em>*</em></em>
<a name="179" href="#179">179</a> <em>     * Returns the list of protocols to be enabled when {@link SSLEngine}</em>
<a name="180" href="#180">180</a> <em>     * is initialized.</em>
<a name="181" href="#181">181</a> <em>     * </em>
<a name="182" href="#182">182</a> <em>     * @return &lt;tt>null&lt;/tt> means 'use {@link SSLEngine}'s default.'</em>
<a name="183" href="#183">183</a> <em>     */</em>
<a name="184" href="#184">184</a>     <strong>public</strong> String[] getEnabledProtocols()
<a name="185" href="#185">185</a>     {
<a name="186" href="#186">186</a>         <strong>return</strong> enabledProtocols;
<a name="187" href="#187">187</a>     }
<a name="188" href="#188">188</a>     
<a name="189" href="#189">189</a>     <em>/**<em>*</em></em>
<a name="190" href="#190">190</a> <em>     * Sets the list of protocols to be enabled when {@link SSLEngine}</em>
<a name="191" href="#191">191</a> <em>     * is initialized.</em>
<a name="192" href="#192">192</a> <em>     * </em>
<a name="193" href="#193">193</a> <em>     * @param protocols &lt;tt>null&lt;/tt> means 'use {@link SSLEngine}'s default.'</em>
<a name="194" href="#194">194</a> <em>     */</em>
<a name="195" href="#195">195</a>     <strong>public</strong> <strong>void</strong> setEnabledProtocols( String[] protocols )
<a name="196" href="#196">196</a>     {
<a name="197" href="#197">197</a>         <strong>this</strong>.enabledProtocols = protocols;
<a name="198" href="#198">198</a>     }
<a name="199" href="#199">199</a> 
<a name="200" href="#200">200</a>     <em class="comment">// IoFilter impl.</em>
<a name="201" href="#201">201</a> 
<a name="202" href="#202">202</a>     <strong>public</strong> <strong>void</strong> sessionOpened( NextFilter nextFilter, IoSession session ) throws SSLException
<a name="203" href="#203">203</a>     {
<a name="204" href="#204">204</a>         <em class="comment">// Create an SSL handler</em>
<a name="205" href="#205">205</a>         createSSLSessionHandler( nextFilter, session );
<a name="206" href="#206">206</a>         nextFilter.sessionOpened( session );
<a name="207" href="#207">207</a>     }
<a name="208" href="#208">208</a> 
<a name="209" href="#209">209</a>     <strong>public</strong> <strong>void</strong> sessionClosed( NextFilter nextFilter, IoSession session ) throws SSLException
<a name="210" href="#210">210</a>     {
<a name="211" href="#211">211</a>         <a href="../../../../../org/apache/mina/io/filter/SSLHandler.html">SSLHandler</a> sslHandler = getSSLSessionHandler( session );
<a name="212" href="#212">212</a>         <strong>if</strong>( log.isLoggable( Level.FINEST ) )
<a name="213" href="#213">213</a>         {
<a name="214" href="#214">214</a>             log.log( Level.FINEST, session + <span class="string">" Closed: "</span> + sslHandler );
<a name="215" href="#215">215</a>         }
<a name="216" href="#216">216</a>         <strong>if</strong>( sslHandler != <strong>null</strong> )
<a name="217" href="#217">217</a>         {
<a name="218" href="#218">218</a>             <strong>synchronized</strong>( sslHandler )
<a name="219" href="#219">219</a>             {
<a name="220" href="#220">220</a>                <em class="comment">// Start SSL shutdown process</em>
<a name="221" href="#221">221</a>                <strong>try</strong>
<a name="222" href="#222">222</a>                {
<a name="223" href="#223">223</a>                   <em class="comment">// shut down</em>
<a name="224" href="#224">224</a>                   sslHandler.shutdown();
<a name="225" href="#225">225</a>                   
<a name="226" href="#226">226</a>                   <em class="comment">// there might be data to write out here?</em>
<a name="227" href="#227">227</a>                   writeNetBuffer( nextFilter, session, sslHandler );
<a name="228" href="#228">228</a>                }
<a name="229" href="#229">229</a>                <strong>finally</strong>
<a name="230" href="#230">230</a>                {
<a name="231" href="#231">231</a>                   <em class="comment">// notify closed session</em>
<a name="232" href="#232">232</a>                   nextFilter.sessionClosed( session );
<a name="233" href="#233">233</a>                   
<a name="234" href="#234">234</a>                   <em class="comment">// release buffers</em>
<a name="235" href="#235">235</a>                   sslHandler.release();
<a name="236" href="#236">236</a>                   removeSSLSessionHandler( session );
<a name="237" href="#237">237</a>                }
<a name="238" href="#238">238</a>             }
<a name="239" href="#239">239</a>         }
<a name="240" href="#240">240</a>     }
<a name="241" href="#241">241</a>    
<a name="242" href="#242">242</a>     <strong>public</strong> <strong>void</strong> dataRead( NextFilter nextFilter, IoSession session,
<a name="243" href="#243">243</a>                           <a href="../../../../../org/apache/mina/common/ByteBuffer.html">ByteBuffer</a> buf ) throws SSLException
<a name="244" href="#244">244</a>     {
<a name="245" href="#245">245</a>         <a href="../../../../../org/apache/mina/io/filter/SSLHandler.html">SSLHandler</a> sslHandler = createSSLSessionHandler( nextFilter, session );
<a name="246" href="#246">246</a>         <strong>if</strong>( sslHandler != <strong>null</strong> )
<a name="247" href="#247">247</a>         {
<a name="248" href="#248">248</a>             <strong>if</strong>( log.isLoggable( Level.FINEST ) )
<a name="249" href="#249">249</a>             {
<a name="250" href="#250">250</a>                 log.log( Level.FINEST, session + <span class="string">" Data Read: "</span> + sslHandler + <span class="string">" ("</span> + buf+ ')' );
<a name="251" href="#251">251</a>             }
<a name="252" href="#252">252</a>             <strong>synchronized</strong>( sslHandler )
<a name="253" href="#253">253</a>             {
<a name="254" href="#254">254</a>                 <strong>try</strong>
<a name="255" href="#255">255</a>                 {
<a name="256" href="#256">256</a>                     <em class="comment">// forward read encrypted data to SSL handler</em>
<a name="257" href="#257">257</a>                     sslHandler.dataRead( nextFilter, buf.buf() );
<a name="258" href="#258">258</a> 
<a name="259" href="#259">259</a>                     <em class="comment">// Handle data to be forwarded to application or written to net</em>
<a name="260" href="#260">260</a>                     handleSSLData( nextFilter, session, sslHandler );
<a name="261" href="#261">261</a> 
<a name="262" href="#262">262</a>                     <strong>if</strong>( sslHandler.isClosed() )
<a name="263" href="#263">263</a>                     {
<a name="264" href="#264">264</a>                         <strong>if</strong>( log.isLoggable( Level.FINEST ) )
<a name="265" href="#265">265</a>                         {
<a name="266" href="#266">266</a>                             log.log( Level.FINEST,
<a name="267" href="#267">267</a>                                      session + <span class="string">" SSL Session closed. Closing connection.."</span> );
<a name="268" href="#268">268</a>                         }
<a name="269" href="#269">269</a>                         session.close();
<a name="270" href="#270">270</a>                     }
<a name="271" href="#271">271</a>                 }
<a name="272" href="#272">272</a>                 <strong>catch</strong>( SSLException ssle )
<a name="273" href="#273">273</a>                 {
<a name="274" href="#274">274</a>                     <strong>if</strong>( !sslHandler.isInitialHandshakeComplete() )
<a name="275" href="#275">275</a>                     {
<a name="276" href="#276">276</a>                         SSLException <strong>new</strong>SSLE = <strong>new</strong> SSLHandshakeException(
<a name="277" href="#277">277</a>                                 <span class="string">"Initial SSL handshake failed."</span> );
<a name="278" href="#278">278</a>                         newSSLE.initCause( ssle );
<a name="279" href="#279">279</a>                         ssle = newSSLE;
<a name="280" href="#280">280</a>                     }
<a name="281" href="#281">281</a> 
<a name="282" href="#282">282</a>                     <strong>throw</strong> ssle;
<a name="283" href="#283">283</a>                 }
<a name="284" href="#284">284</a>             }
<a name="285" href="#285">285</a>         }
<a name="286" href="#286">286</a>         <strong>else</strong>
<a name="287" href="#287">287</a>         {
<a name="288" href="#288">288</a>             nextFilter.dataRead( session, buf );
<a name="289" href="#289">289</a>         }
<a name="290" href="#290">290</a>     }
<a name="291" href="#291">291</a> 
<a name="292" href="#292">292</a>     <strong>public</strong> <strong>void</strong> dataWritten( NextFilter nextFilter, IoSession session,
<a name="293" href="#293">293</a>                             Object marker )
<a name="294" href="#294">294</a>     {
<a name="295" href="#295">295</a>         <strong>if</strong>( marker != SSL_MARKER )
<a name="296" href="#296">296</a>         {
<a name="297" href="#297">297</a>             nextFilter.dataWritten( session, marker );
<a name="298" href="#298">298</a>         }
<a name="299" href="#299">299</a>     }
<a name="300" href="#300">300</a> 
<a name="301" href="#301">301</a>     <strong>public</strong> <strong>void</strong> filterWrite( NextFilter nextFilter, IoSession session, ByteBuffer buf, Object marker ) throws SSLException
<a name="302" href="#302">302</a>     {
<a name="303" href="#303">303</a> 
<a name="304" href="#304">304</a>         <a href="../../../../../org/apache/mina/io/filter/SSLHandler.html">SSLHandler</a> handler = createSSLSessionHandler( nextFilter, session );
<a name="305" href="#305">305</a>         <strong>if</strong>( log.isLoggable( Level.FINEST ) )
<a name="306" href="#306">306</a>         {
<a name="307" href="#307">307</a>             log.log( Level.FINEST, session + <span class="string">" Filtered Write: "</span> + handler );
<a name="308" href="#308">308</a>         }
<a name="309" href="#309">309</a> 
<a name="310" href="#310">310</a>         <strong>synchronized</strong>( handler )
<a name="311" href="#311">311</a>         {
<a name="312" href="#312">312</a>             <strong>if</strong>( handler.isWritingEncryptedData() )
<a name="313" href="#313">313</a>             {
<a name="314" href="#314">314</a>                 <em class="comment">// data already encrypted; simply return buffer</em>
<a name="315" href="#315">315</a>                 <strong>if</strong>( log.isLoggable( Level.FINEST ) )
<a name="316" href="#316">316</a>                 {
<a name="317" href="#317">317</a>                     log.log( Level.FINEST, session + <span class="string">"   already encrypted: "</span> + buf );
<a name="318" href="#318">318</a>                 }
<a name="319" href="#319">319</a>                 nextFilter.filterWrite( session, buf, marker );
<a name="320" href="#320">320</a>                 <strong>return</strong>;
<a name="321" href="#321">321</a>             }
<a name="322" href="#322">322</a>             
<a name="323" href="#323">323</a>             <strong>if</strong>( handler.isInitialHandshakeComplete() )
<a name="324" href="#324">324</a>             {
<a name="325" href="#325">325</a>                 <em class="comment">// SSL encrypt</em>
<a name="326" href="#326">326</a>                 <strong>if</strong>( log.isLoggable( Level.FINEST ) )
<a name="327" href="#327">327</a>                 {
<a name="328" href="#328">328</a>                     log.log( Level.FINEST, session + <span class="string">" encrypt: "</span> + buf );
<a name="329" href="#329">329</a>                 }
<a name="330" href="#330">330</a>                 handler.encrypt( buf.buf() );
<a name="331" href="#331">331</a>                 <a href="../../../../../org/apache/mina/common/ByteBuffer.html">ByteBuffer</a> encryptedBuffer = copy( handler
<a name="332" href="#332">332</a>                         .getOutNetBuffer() );
<a name="333" href="#333">333</a> 
<a name="334" href="#334">334</a>                 <strong>if</strong>( log.isLoggable( Level.FINEST ) )
<a name="335" href="#335">335</a>                 {
<a name="336" href="#336">336</a>                     log.log( Level.FINEST, session + <span class="string">" encrypted buf: "</span> + encryptedBuffer);
<a name="337" href="#337">337</a>                 }
<a name="338" href="#338">338</a>                 buf.release();
<a name="339" href="#339">339</a>                 nextFilter.filterWrite( session, encryptedBuffer, marker );
<a name="340" href="#340">340</a>                 <strong>return</strong>;
<a name="341" href="#341">341</a>             }
<a name="342" href="#342">342</a>             <strong>else</strong>
<a name="343" href="#343">343</a>             {
<a name="344" href="#344">344</a>                 <strong>if</strong>( !session.isConnected() )
<a name="345" href="#345">345</a>                 {
<a name="346" href="#346">346</a>                     <strong>if</strong>( log.isLoggable( Level.FINEST ) )
<a name="347" href="#347">347</a>                     {
<a name="348" href="#348">348</a>                         log.log( Level.FINEST, session + <span class="string">" Write request on closed session."</span> );
<a name="349" href="#349">349</a>                     }
<a name="350" href="#350">350</a>                 }
<a name="351" href="#351">351</a>                 <strong>else</strong>
<a name="352" href="#352">352</a>                 {
<a name="353" href="#353">353</a>                     <strong>if</strong>( log.isLoggable( Level.FINEST ) )
<a name="354" href="#354">354</a>                     {
<a name="355" href="#355">355</a>                         log.log( Level.FINEST, session + <span class="string">" Handshaking is not complete yet. Buffering write request."</span> );
<a name="356" href="#356">356</a>                     }
<a name="357" href="#357">357</a>                     handler.scheduleWrite( nextFilter, buf, marker );
<a name="358" href="#358">358</a>                 }
<a name="359" href="#359">359</a>             }
<a name="360" href="#360">360</a>         }
<a name="361" href="#361">361</a>     }
<a name="362" href="#362">362</a> 
<a name="363" href="#363">363</a>     <em class="comment">// Utiliities</em>
<a name="364" href="#364">364</a> 
<a name="365" href="#365">365</a>     <strong>private</strong> <strong>void</strong> handleSSLData( NextFilter nextFilter, IoSession session,
<a name="366" href="#366">366</a>                                <a href="../../../../../org/apache/mina/io/filter/SSLHandler.html">SSLHandler</a> handler ) throws SSLException
<a name="367" href="#367">367</a>     {
<a name="368" href="#368">368</a>         <em class="comment">// Flush any buffered write requests occurred before handshaking.</em>
<a name="369" href="#369">369</a>         <strong>if</strong>( handler.isInitialHandshakeComplete() )
<a name="370" href="#370">370</a>         {
<a name="371" href="#371">371</a>             handler.flushScheduledWrites();
<a name="372" href="#372">372</a>         }
<a name="373" href="#373">373</a> 
<a name="374" href="#374">374</a>         <em class="comment">// Write encrypted data to be written (if any)</em>
<a name="375" href="#375">375</a>         writeNetBuffer( nextFilter, session, handler );
<a name="376" href="#376">376</a> 
<a name="377" href="#377">377</a>         <em class="comment">// handle app. data read (if any)</em>
<a name="378" href="#378">378</a>         handleAppDataRead( nextFilter, session, handler );
<a name="379" href="#379">379</a>     }
<a name="380" href="#380">380</a> 
<a name="381" href="#381">381</a>     <strong>private</strong> <strong>void</strong> handleAppDataRead( NextFilter nextFilter, IoSession session,
<a name="382" href="#382">382</a>                                    <a href="../../../../../org/apache/mina/io/filter/SSLHandler.html">SSLHandler</a> sslHandler )
<a name="383" href="#383">383</a>     {
<a name="384" href="#384">384</a>         <strong>if</strong>( log.isLoggable( Level.FINEST ) )
<a name="385" href="#385">385</a>         {
<a name="386" href="#386">386</a>             log.log( Level.FINEST, session + <span class="string">" appBuffer: "</span> + sslHandler.getAppBuffer() );
<a name="387" href="#387">387</a>         }
<a name="388" href="#388">388</a>         <strong>if</strong>( sslHandler.getAppBuffer().hasRemaining() )
<a name="389" href="#389">389</a>         {
<a name="390" href="#390">390</a>             <em class="comment">// forward read app data</em>
<a name="391" href="#391">391</a>             <a href="../../../../../org/apache/mina/common/ByteBuffer.html">ByteBuffer</a> readBuffer = copy( sslHandler.getAppBuffer() );
<a name="392" href="#392">392</a>             <strong>if</strong>( log.isLoggable( Level.FINEST ) )
<a name="393" href="#393">393</a>             {
<a name="394" href="#394">394</a>                 log.log( Level.FINEST, session + <span class="string">" app data read: "</span> + readBuffer + <span class="string">" ("</span> + readBuffer.getHexDump() + ')' );
<a name="395" href="#395">395</a>             }
<a name="396" href="#396">396</a>             nextFilter.dataRead( session, readBuffer );
<a name="397" href="#397">397</a>         }
<a name="398" href="#398">398</a>     }
<a name="399" href="#399">399</a> 
<a name="400" href="#400">400</a>     <strong>void</strong> writeNetBuffer( NextFilter nextFilter, IoSession session, SSLHandler sslHandler )
<a name="401" href="#401">401</a>             throws SSLException
<a name="402" href="#402">402</a>     {
<a name="403" href="#403">403</a>         <em class="comment">// Check if any net data needed to be writen</em>
<a name="404" href="#404">404</a>         <strong>if</strong>( !sslHandler.getOutNetBuffer().hasRemaining() )
<a name="405" href="#405">405</a>         {
<a name="406" href="#406">406</a>             <em class="comment">// no; bail out</em>
<a name="407" href="#407">407</a>             <strong>return</strong>;
<a name="408" href="#408">408</a>         }
<a name="409" href="#409">409</a> 
<a name="410" href="#410">410</a>         <em class="comment">// write net data</em>
<a name="411" href="#411">411</a> 
<a name="412" href="#412">412</a>         <em class="comment">// set flag that we are writing encrypted data</em>
<a name="413" href="#413">413</a>         <em class="comment">// (used in filterWrite() above)</em>
<a name="414" href="#414">414</a>         <strong>synchronized</strong>( sslHandler )
<a name="415" href="#415">415</a>         {
<a name="416" href="#416">416</a>             sslHandler.setWritingEncryptedData( <strong>true</strong> );
<a name="417" href="#417">417</a>         }
<a name="418" href="#418">418</a> 
<a name="419" href="#419">419</a>         <strong>try</strong>
<a name="420" href="#420">420</a>         {
<a name="421" href="#421">421</a>             <strong>if</strong>( log.isLoggable( Level.FINEST ) )
<a name="422" href="#422">422</a>             {
<a name="423" href="#423">423</a>                 log.log( Level.FINEST, session + <span class="string">" write outNetBuffer: "</span> +
<a name="424" href="#424">424</a>                                    sslHandler.getOutNetBuffer() );
<a name="425" href="#425">425</a>             }
<a name="426" href="#426">426</a>             <a href="../../../../../org/apache/mina/common/ByteBuffer.html">ByteBuffer</a> writeBuffer = copy( sslHandler.getOutNetBuffer() );
<a name="427" href="#427">427</a>             <strong>if</strong>( log.isLoggable( Level.FINEST ) )
<a name="428" href="#428">428</a>             {
<a name="429" href="#429">429</a>                 log.log( Level.FINEST, session + <span class="string">" session write: "</span> + writeBuffer );
<a name="430" href="#430">430</a>             }
<a name="431" href="#431">431</a>             <em class="comment">//debug("outNetBuffer (after copy): {0}", sslHandler.getOutNetBuffer());</em>
<a name="432" href="#432">432</a>             filterWrite( nextFilter, session, writeBuffer, SSL_MARKER );
<a name="433" href="#433">433</a> 
<a name="434" href="#434">434</a>             <em class="comment">// loop while more writes required to complete handshake</em>
<a name="435" href="#435">435</a>             <strong>while</strong>( sslHandler.needToCompleteInitialHandshake() )
<a name="436" href="#436">436</a>             {
<a name="437" href="#437">437</a>                 <strong>try</strong>
<a name="438" href="#438">438</a>                 {
<a name="439" href="#439">439</a>                     sslHandler.continueHandshake( nextFilter );
<a name="440" href="#440">440</a>                 }
<a name="441" href="#441">441</a>                 <strong>catch</strong>( SSLException ssle )
<a name="442" href="#442">442</a>                 {
<a name="443" href="#443">443</a>                     SSLException <strong>new</strong>SSLE = <strong>new</strong> SSLHandshakeException(
<a name="444" href="#444">444</a>                             <span class="string">"Initial SSL handshake failed."</span> );
<a name="445" href="#445">445</a>                     newSSLE.initCause( ssle );
<a name="446" href="#446">446</a>                     <strong>throw</strong> newSSLE;
<a name="447" href="#447">447</a>                 }
<a name="448" href="#448">448</a>                 <strong>if</strong>( sslHandler.getOutNetBuffer().hasRemaining() )
<a name="449" href="#449">449</a>                 {
<a name="450" href="#450">450</a>                     <strong>if</strong>( log.isLoggable( Level.FINEST ) )
<a name="451" href="#451">451</a>                     {
<a name="452" href="#452">452</a>                         log.log( Level.FINEST, session + <span class="string">" write outNetBuffer2: "</span> +
<a name="453" href="#453">453</a>                                            sslHandler.getOutNetBuffer() );
<a name="454" href="#454">454</a>                     }
<a name="455" href="#455">455</a>                     <a href="../../../../../org/apache/mina/common/ByteBuffer.html">ByteBuffer</a> writeBuffer2 = copy( sslHandler
<a name="456" href="#456">456</a>                             .getOutNetBuffer() );
<a name="457" href="#457">457</a>                     filterWrite( nextFilter, session, writeBuffer2, SSL_MARKER );
<a name="458" href="#458">458</a>                 }
<a name="459" href="#459">459</a>             }
<a name="460" href="#460">460</a>         }
<a name="461" href="#461">461</a>         <strong>finally</strong>
<a name="462" href="#462">462</a>         {
<a name="463" href="#463">463</a>             <strong>synchronized</strong>( sslHandler )
<a name="464" href="#464">464</a>             {
<a name="465" href="#465">465</a>                 sslHandler.setWritingEncryptedData( false );
<a name="466" href="#466">466</a>             }
<a name="467" href="#467">467</a>         }
<a name="468" href="#468">468</a>     }
<a name="469" href="#469">469</a> 
<a name="470" href="#470">470</a>     <em>/**<em>*</em></em>
<a name="471" href="#471">471</a> <em>     * Creates a new Mina byte buffer that is a deep copy of the remaining bytes</em>
<a name="472" href="#472">472</a> <em>     * in the given buffer (between index buf.position() and buf.limit())</em>
<a name="473" href="#473">473</a> <em>     *</em>
<a name="474" href="#474">474</a> <em>     * @param src the buffer to copy</em>
<a name="475" href="#475">475</a> <em>     * @return the new buffer, ready to read from</em>
<a name="476" href="#476">476</a> <em>     */</em>
<a name="477" href="#477">477</a>     <strong>private</strong> <strong>static</strong> <a href="../../../../../org/apache/mina/common/ByteBuffer.html">ByteBuffer</a> copy( java.nio.ByteBuffer src )
<a name="478" href="#478">478</a>     {
<a name="479" href="#479">479</a>         <a href="../../../../../org/apache/mina/common/ByteBuffer.html">ByteBuffer</a> copy = ByteBuffer.allocate( src.remaining() );
<a name="480" href="#480">480</a>         copy.put( src );
<a name="481" href="#481">481</a>         copy.flip();
<a name="482" href="#482">482</a>         <strong>return</strong> copy;
<a name="483" href="#483">483</a>     }
<a name="484" href="#484">484</a> 
<a name="485" href="#485">485</a>     <em class="comment">// Utilities to mainpulate SSLHandler based on IoSession</em>
<a name="486" href="#486">486</a> 
<a name="487" href="#487">487</a>     <strong>private</strong> <a href="../../../../../org/apache/mina/io/filter/SSLHandler.html">SSLHandler</a> createSSLSessionHandler( NextFilter nextFilter, IoSession session ) throws SSLException
<a name="488" href="#488">488</a>     {
<a name="489" href="#489">489</a>         <a href="../../../../../org/apache/mina/io/filter/SSLHandler.html">SSLHandler</a> handler = getSSLSessionHandler( session );
<a name="490" href="#490">490</a>         <strong>if</strong>( handler == <strong>null</strong> )
<a name="491" href="#491">491</a>         {
<a name="492" href="#492">492</a>             <strong>synchronized</strong>( session )
<a name="493" href="#493">493</a>             {
<a name="494" href="#494">494</a>                 handler = getSSLSessionHandler( session );
<a name="495" href="#495">495</a>                 <strong>if</strong>( handler == <strong>null</strong> )
<a name="496" href="#496">496</a>                 {
<a name="497" href="#497">497</a>                     <strong>boolean</strong> done = false;
<a name="498" href="#498">498</a>                     <strong>try</strong>
<a name="499" href="#499">499</a>                     {
<a name="500" href="#500">500</a>                         handler =
<a name="501" href="#501">501</a>                             <strong>new</strong> <a href="../../../../../org/apache/mina/io/filter/SSLHandler.html">SSLHandler</a>( <strong>this</strong>, sslContext, session );
<a name="502" href="#502">502</a>                         session.setAttribute( SSL_HANDLER, handler );
<a name="503" href="#503">503</a>                         handler.doHandshake( nextFilter );
<a name="504" href="#504">504</a>                         done = <strong>true</strong>;
<a name="505" href="#505">505</a>                     }
<a name="506" href="#506">506</a>                     <strong>finally</strong> 
<a name="507" href="#507">507</a>                     {
<a name="508" href="#508">508</a>                         <strong>if</strong>( !done )
<a name="509" href="#509">509</a>                         {
<a name="510" href="#510">510</a>                             session.removeAttribute( SSL_HANDLER );
<a name="511" href="#511">511</a>                         }
<a name="512" href="#512">512</a>                     }
<a name="513" href="#513">513</a>                 }
<a name="514" href="#514">514</a>             }
<a name="515" href="#515">515</a>         }
<a name="516" href="#516">516</a>         
<a name="517" href="#517">517</a>         <strong>return</strong> handler;
<a name="518" href="#518">518</a>     }
<a name="519" href="#519">519</a> 
<a name="520" href="#520">520</a>     <strong>private</strong> <a href="../../../../../org/apache/mina/io/filter/SSLHandler.html">SSLHandler</a> getSSLSessionHandler( IoSession session )
<a name="521" href="#521">521</a>     {
<a name="522" href="#522">522</a>         <strong>return</strong> ( SSLHandler ) session.getAttribute( SSL_HANDLER );
<a name="523" href="#523">523</a>     }
<a name="524" href="#524">524</a> 
<a name="525" href="#525">525</a>     <strong>private</strong> <strong>void</strong> removeSSLSessionHandler( IoSession session )
<a name="526" href="#526">526</a>     {
<a name="527" href="#527">527</a>         session.removeAttribute( SSL_HANDLER );
<a name="528" href="#528">528</a>     }
<a name="529" href="#529">529</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

