Author: buildbot Date: Wed Oct 31 15:23:23 2012 New Revision: 836741 Log: Staging update by buildbot for mina
Modified: websites/staging/mina/trunk/content/ (props changed) websites/staging/mina/trunk/content/ftpserver/configuration_ssltls_support.html websites/staging/mina/trunk/content/ftpserver/configuration_user_manager_db.html websites/staging/mina/trunk/content/ftpserver/configuration_user_manager_file.html Propchange: websites/staging/mina/trunk/content/ ------------------------------------------------------------------------------ --- cms:source-revision (original) +++ cms:source-revision Wed Oct 31 15:23:23 2012 @@ -1 +1 @@ -1404183 +1404201 Modified: websites/staging/mina/trunk/content/ftpserver/configuration_ssltls_support.html ============================================================================== --- websites/staging/mina/trunk/content/ftpserver/configuration_ssltls_support.html (original) +++ websites/staging/mina/trunk/content/ftpserver/configuration_ssltls_support.html Wed Oct 31 15:23:23 2012 @@ -114,41 +114,28 @@ <h3 id="explicit-security-default">Explicit Security (default)</h3> <p>In this mode server supports both secure and non-secure connection. Upon request from client (AUTH SSL) the server switches to the SSL/TLS mode.</p> <p>In this case, the listener should not use implicit SSL (the default value):</p> -<p><DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent"> -<PRE><nio-listener name="default" implicit-ssl="false"> -</PRE> -</DIV></DIV></p> +<div class="codehilite"><pre><span class="n">nio</span><span class="o">-</span><span class="n">listener</span> <span class="n">name</span><span class="o">=</span><span class="s">"default"</span> <span class="n">implicit</span><span class="o">-</span><span class="n">ssl</span><span class="o">=</span><span class="err">"</span><span class="n">false</span><span class="o">></span> +</pre></div> + + <h3 id="implicit-security">Implicit Security</h3> <p>If you want to use implicit SSL connection, that is, SSL is always enabled on the control socket. The first thing you need to do is to tell the listener to use implicit SSL mode:</p> -<p><DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent"> -<PRE><nio-listener name="default" implicit-ssl="true"> -</PRE> -</DIV></DIV></p> +<div class="codehilite"><pre><span class="o"><</span><span class="n">nio</span><span class="o">-</span><span class="n">listener</span> <span class="n">name</span><span class="o">=</span><span class="s">"default"</span> <span class="n">implicit</span><span class="o">-</span><span class="n">ssl</span><span class="o">=</span><span class="s">"true"</span><span class="o">></span> +</pre></div> + + <p>If you set the listener to use implicit security, enabling implicit security for the data connection should be conside</p> <h3 id="data-connection-security">Data connection security</h3> <p>Implicit secure listener does not ensure encrypted data transfer. To use SSL/TLS in data connection, client either has to send "PROT P" command or implicit security must be enabled for the data connection.</p> -<p><DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent"> -<PRE><data-connection implicit-ssl="true"> -</PRE> -</DIV></DIV></p> +<div class="codehilite"><pre><span class="o"><</span><span class="n">data</span><span class="o">-</span><span class="n">connection</span> <span class="n">implicit</span><span class="o">-</span><span class="n">ssl</span><span class="o">=</span><span class="s">"true"</span><span class="o">></span> +</pre></div> + + <p>If no explicit configuration for SSL keystores and truststores is provided for the data connection, it will be inherited from the listener. This is the normal configuration.</p> <p>Different FTP clients behave different with regards to implicit security on the data connection, some assume an SSL enabled socket, while some will always send a "PROT P" command. The following table shows the characteristics of some clients, please report others.</p> -<p><DIV class="table-wrap"> -<TABLE class="confluenceTable"><TBODY> -<TR> -<TH class="confluenceTh">FTP client</TH> -<TH class="confluenceTh"> Behavior </TH> -</TR> -<TR> -<TD class="confluenceTd"> FileZilla </TD> -<TD class="confluenceTd"> Sends "PROT P" command automatically in implicit security mode </TD> -</TR> -<TR> -<TD class="confluenceTd"> DartFTP/PowerTCP </TD> -<TD class="confluenceTd"> Assumes an SSL enabled data connection, does not send "PROT P" </TD> -</TR> -</TBODY></TABLE> -</DIV></p> +<p>| FTP client | Behavior | +| FileZilla | Sends "PROT P" command automatically in implicit security mode | +| DartFTP/PowerTCP | Assumes an SSL enabled data connection, does not send "PROT P" |</p> <h3 id="detailed-configuration">Detailed configuration</h3> <p>Full documentation on all provided configuration is available on the <a href="configuration_listeners.html">Listeners</a> page</p> Modified: websites/staging/mina/trunk/content/ftpserver/configuration_user_manager_db.html ============================================================================== --- websites/staging/mina/trunk/content/ftpserver/configuration_user_manager_db.html (original) +++ websites/staging/mina/trunk/content/ftpserver/configuration_user_manager_db.html Wed Oct 31 15:23:23 2012 @@ -112,184 +112,204 @@ <h2 id="database-jdbc-libraries">Database JDBC libraries</h2> <p>You must include the required JAR files for your database in the classpath of FtpServer. Typically you would do this by placing the JAR files in <INSTALL_DIR>/common/lib.</p> <h2 id="example">Example</h2> -<p><DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent"> -<PRE class="code-java"> - <db-user-manager encrypt-passwords=<SPAN class="code-quote">"salted"</SPAN>> - <data-source> - <beans:bean class=<SPAN class="code-quote">"some.datasoure.class"</SPAN> /> - </data-source> - <insert-user>INSERT INTO FTP_USER (userid, userpassword, - homedirectory, enableflag, writepermission, idletime, uploadrate, - downloadrate) VALUES ('{userid}', '{userpassword}', '{homedirectory}', - '{enableflag}', '{writepermission}', {idletime}, {uploadrate}, - {downloadrate})</insert-user> - <update-user>UPDATE FTP_USER SET - userpassword='{userpassword}',homedirectory='{homedirectory}',enableflag={enableflag},writepermission={writepermission},idletime={idletime},uploadrate={uploadrate},downloadrate={downloadrate} - WHERE userid='{userid}'</update-user> - <delete-user>DELETE FROM FTP_USER WHERE userid = '{userid}' - </delete-user> - <select-user>SELECT userid, userpassword, homedirectory, - enableflag, writepermission, idletime, uploadrate, downloadrate FROM - FTP_USER WHERE userid = '{userid}'</select-user> - <select-all-users>SELECT userid FROM FTP_USER ORDER BY userid - </select-all-users> - <is-admin>SELECT userid FROM FTP_USER WHERE userid='{userid}' AND - userid='admin'</is-admin> - <authenticate>SELECT userpassword from FTP_USER WHERE userid='{userid}'</authenticate> - </db-user-manager> -</PRE> -</DIV></DIV></p> +<div class="codehilite"><pre><span class="nt"><db-user-manager</span> <span class="na">encrypt-passwords=</span><span class="s">"salted"</span><span class="nt">></span> + <span class="nt"><data-source></span> + <span class="nt"><beans:bean</span> <span class="na">class=</span><span class="s">"some.datasoure.class"</span> <span class="nt">/></span> + <span class="nt"></data-source></span> + <span class="nt"><insert-user></span>INSERT INTO FTP_USER (userid, userpassword, + homedirectory, enableflag, writepermission, idletime, uploadrate, + downloadrate) VALUES ('{userid}', '{userpassword}', '{homedirectory}', + '{enableflag}', '{writepermission}', {idletime}, {uploadrate}, + {downloadrate})<span class="nt"></insert-user></span> + <span class="nt"><update-user></span> + UPDATE FTP_USER SET + userpassword='{userpassword}', + homedirectory='{homedirectory}', + enableflag={enableflag}, + writepermission={writepermission}, + idletime={idletime}, + uploadrate={uploadrate}, + downloadrate={downloadrate} + WHERE userid='{userid}' + <span class="nt"></update-user></span> + <span class="nt"><delete-user></span> + DELETE FROM FTP_USER WHERE userid = '{userid}' + <span class="nt"></delete-user></span> + <span class="nt"><select-user></span> + SELECT userid, userpassword, homedirectory, + enableflag, writepermission, idletime, uploadrate, downloadrate + FROM FTP_USER + WHERE userid = '{userid}' + <span class="nt"></select-user></span> + <span class="nt"><select-all-users></span> + SELECT userid FROM FTP_USER ORDER BY userid + <span class="nt"></select-all-users></span> + <span class="nt"><is-admin></span> + SELECT userid + FROM FTP_USER + WHERE userid='{userid}' AND userid='admin' + <span class="nt"></is-admin></span> + <span class="nt"><authenticate></span>SELECT userpassword from FTP_USER WHERE userid='{userid}'<span class="nt"></authenticate></span> +<span class="nt"></db-user-manager></span> +</pre></div> + + <h2 id="configuration-parameters">Configuration Parameters</h2> <h3 id="db-user-manager-element">db-user-manager element</h3> -<p><DIV class="table-wrap"> -<TABLE class="confluenceTable"><TBODY> -<TR> -<TH class="confluenceTh"> Attribute </TH> -<TH class="confluenceTh"> Description </TH> -<TH class="confluenceTh"> Required </TH> -<TH class="confluenceTh"> Default value </TH> -</TR> -<TR> -<TD class="confluenceTd"> encrypt-passwords </TD> -<TD class="confluenceTd"> It indicates how to stored password are encrypted. Possible values are "clear" for clear text, "md5" for hashed using MD5 or "salted" for hashed salted passwords (including multiple hash iterations). "salted" is encouraged. </TD> -<TD class="confluenceTd"> No </TD> -<TD class="confluenceTd"> md5 </TD> -</TR> -</TBODY></TABLE> -</DIV></p> -<p><DIV class="table-wrap"> -<TABLE class="confluenceTable"><TBODY> -<TR> -<TH class="confluenceTh"> Child element </TH> -<TH class="confluenceTh"> Description </TH> -<TH class="confluenceTh"> Required </TH> -<TH class="confluenceTh"> Default value </TH> -</TR> -<TR> -<TD class="confluenceTd"> data-source </TD> -<TD class="confluenceTd"> The data source configured using the regular Spring bean element </TD> -<TD class="confluenceTd"> Yes </TD> -<TD class="confluenceTd"> </TD> -</TR> -<TR> -<TD class="confluenceTd"> insert-user </TD> -<TD class="confluenceTd"> The SQL statement to insert a new user. All the dynamic values will be replaced during runtime. </TD> -<TD class="confluenceTd"> Yes </TD> -<TD class="confluenceTd"> </TD> -</TR> -<TR> -<TD class="confluenceTd"> update-user </TD> -<TD class="confluenceTd"> The SQL statement to update a user. All the dynamic values will be replaced during runtime. </TD> -<TD class="confluenceTd"> Yes </TD> -<TD class="confluenceTd"> </TD> -</TR> -<TR> -<TD class="confluenceTd"> delete-user </TD> -<TD class="confluenceTd"> The SQL statement to delete a user. All the dynamic values will be replaced during runtime. </TD> -<TD class="confluenceTd"> Yes </TD> -<TD class="confluenceTd"> </TD> -</TR> -<TR> -<TD class="confluenceTd"> select-user </TD> -<TD class="confluenceTd"> The SQL statement to select a user. All the dynamic values will be replaced during runtime. </TD> -<TD class="confluenceTd"> Yes </TD> -<TD class="confluenceTd"> </TD> -</TR> -<TR> -<TD class="confluenceTd"> select-all-users </TD> -<TD class="confluenceTd"> The SQL statement to select all users. All the dynamic values will be replaced during runtime. </TD> -<TD class="confluenceTd"> Yes </TD> -<TD class="confluenceTd"> </TD> -</TR> -<TR> -<TD class="confluenceTd"> is-admin </TD> -<TD class="confluenceTd"> The SQL statement to find whether an user is admin or not. All the dynamic values will be replaced during runtime. </TD> -<TD class="confluenceTd"> Yes </TD> -<TD class="confluenceTd"> </TD> -</TR> -<TR> -<TD class="confluenceTd"> authenticate </TD> -<TD class="confluenceTd"> The SQL statement to authenticate a user. All the dynamic values will be replaced during runtime. </TD> -<TD class="confluenceTd"> Yes </TD> -<TD class="confluenceTd"> </TD> -</TR> -</TBODY></TABLE> -</DIV></p> +<table> +<thead> +<tr> +<th>Attribute</th> +<th>Description</th> +<th>Required</th> +<th>Default value</th> +</tr> +</thead> +<tbody> +<tr> +<td>encrypt-passwords</td> +<td>It indicates how to stored password are encrypted. Possible values are "clear" for clear text, "md5" for hashed using MD5 or "salted" for hashed salted passwords (including multiple hash iterations). "salted" is encouraged.</td> +<td>No</td> +<td>md5</td> +</tr> +</tbody> +</table> +<table> +<thead> +<tr> +<th>Child element</th> +<th>Description</th> +<th>Required</th> +<th>Default value</th> +</tr> +</thead> +<tbody> +<tr> +<td>data-source</td> +<td>The data source configured using the regular Spring bean element</td> +<td>Yes</td> +<td> </td> +</tr> +<tr> +<td>insert-user</td> +<td>The SQL statement to insert a new user. All the dynamic values will be replaced during runtime.</td> +<td>Yes</td> +<td> </td> +</tr> +<tr> +<td>update-user</td> +<td>The SQL statement to update a user. All the dynamic values will be replaced during runtime.</td> +<td>Yes</td> +<td> </td> +</tr> +<tr> +<td>delete-user</td> +<td>The SQL statement to delete a user. All the dynamic values will be replaced during runtime.</td> +<td>Yes</td> +<td> </td> +</tr> +<tr> +<td>select-user</td> +<td>The SQL statement to select a user. All the dynamic values will be replaced during runtime.</td> +<td>Yes</td> +<td> </td> +</tr> +<tr> +<td>select-all-users</td> +<td>The SQL statement to select all users. All the dynamic values will be replaced during runtime.</td> +<td>Yes</td> +<td> </td> +</tr> +<tr> +<td>is-admin</td> +<td>The SQL statement to find whether an user is admin or not. All the dynamic values will be replaced during runtime.</td> +<td>Yes</td> +<td> </td> +</tr> +<tr> +<td>authenticate</td> +<td>The SQL statement to authenticate a user. All the dynamic values will be replaced during runtime.</td> +<td>Yes</td> +<td> </td> +</tr> +</tbody> +</table> <h3 id="data-source-configuration">Data source configuration</h3> <p>The data source must be configured as described by the database provider. You can also use the general purpose <a href="http://jakarta.apache.org/commons/dbcp/apidocs/org/apache/commons/dbcp/BasicDataSource.html">BasicDataSource</a> provided by the <a href="http://jakarta.apache.org/commons/dbcp/">Apache Commons DBCP project</a>.</p> <h4 id="example-using-the-basicdatasource-to-connect-to-mysql">Example using the BasicDataSource to connect to MySQL</h4> -<p><DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent"> -<PRE class="code-java"> -<data-source> - <beans:bean class=<SPAN class="code-quote">"org.apache.commons.dbcp.BasicDataSource"</SPAN>> - <beans:property name=<SPAN class="code-quote">"driverClassName"</SPAN> value=<SPAN class="code-quote">"com.mysql.jdbc.Driver"</SPAN> /> - <beans:property name=<SPAN class="code-quote">"url"</SPAN> value=<SPAN class="code-quote">"jdbc:mysql:<SPAN class="code-comment">//localhost/ftpd"</SPAN> /> -</SPAN> <beans:property name=<SPAN class="code-quote">"username"</SPAN> value=<SPAN class="code-quote">"myuser"</SPAN> /> - <beans:property name=<SPAN class="code-quote">"password"</SPAN> value=<SPAN class="code-quote">"secret"</SPAN> /> - </beans:bean> -</data-source> -</PRE> -</DIV></DIV></p> +<div class="codehilite"><pre><span class="nt"><data-source></span> + <span class="nt"><beans:bean</span> <span class="na">class=</span><span class="s">"org.apache.commons.dbcp.BasicDataSource"</span><span class="nt">></span> + <span class="nt"><beans:property</span> <span class="na">name=</span><span class="s">"driverClassName"</span> <span class="na">value=</span><span class="s">"com.mysql.jdbc.Driver"</span> <span class="nt">/></span> + <span class="nt"><beans:property</span> <span class="na">name=</span><span class="s">"url"</span> <span class="na">value=</span><span class="s">"jdbc:mysql://localhost/ftpd"</span> <span class="nt">/></span> + <span class="nt"><beans:property</span> <span class="na">name=</span><span class="s">"username"</span> <span class="na">value=</span><span class="s">"myuser"</span> <span class="nt">/></span> + <span class="nt"><beans:property</span> <span class="na">name=</span><span class="s">"password"</span> <span class="na">value=</span><span class="s">"secret"</span> <span class="nt">/></span> + <span class="nt"></beans:bean></span> +<span class="nt"></data-source></span> +</pre></div> + + <h4 id="ftp_user-table-structure">FTP_USER Table Structure</h4> -<p><DIV class="table-wrap"> -<TABLE class="confluenceTable"><TBODY> -<TR> -<TH class="confluenceTh"> Column </TH> -<TH class="confluenceTh"> Type </TH> -<TH class="confluenceTh"> Default value </TH> -</TR> -<TR> -<TD class="confluenceTd"> userid </TD> -<TD class="confluenceTd"> VARCHAR(64), Primary key </TD> -<TD class="confluenceTd"> </TD> -</TR> -<TR> -<TD class="confluenceTd"> userpassword </TD> -<TD class="confluenceTd"> VARCHAR(64) </TD> -<TD class="confluenceTd"> </TD> -</TR> -<TR> -<TD class="confluenceTd"> homedirectory </TD> -<TD class="confluenceTd"> VARCHAR(128) </TD> -<TD class="confluenceTd"> </TD> -</TR> -<TR> -<TD class="confluenceTd"> enableflag </TD> -<TD class="confluenceTd"> BOOLEAN </TD> -<TD class="confluenceTd"> TRUE </TD> -</TR> -<TR> -<TD class="confluenceTd"> writepermission </TD> -<TD class="confluenceTd"> BOOLEAN </TD> -<TD class="confluenceTd"> FALSE </TD> -</TR> -<TR> -<TD class="confluenceTd"> idletime </TD> -<TD class="confluenceTd"> INT </TD> -<TD class="confluenceTd"> 0 </TD> -</TR> -<TR> -<TD class="confluenceTd"> uploadrate </TD> -<TD class="confluenceTd"> INT </TD> -<TD class="confluenceTd"> 0 </TD> -</TR> -<TR> -<TD class="confluenceTd"> downloadrate </TD> -<TD class="confluenceTd"> INT </TD> -<TD class="confluenceTd"> 0 </TD> -</TR> -<TR> -<TD class="confluenceTd"> maxloginnumber </TD> -<TD class="confluenceTd"> INT </TD> -<TD class="confluenceTd"> 0 </TD> -</TR> -<TR> -<TD class="confluenceTd"> maxloginperip </TD> -<TD class="confluenceTd"> INT </TD> -<TD class="confluenceTd"> 0 </TD> -</TR> -</TBODY></TABLE> -</DIV></p> +<table> +<thead> +<tr> +<th>Column</th> +<th>Type</th> +<th>Default value</th> +</tr> +</thead> +<tbody> +<tr> +<td>userid</td> +<td>VARCHAR(64), Primary key</td> +<td> </td> +</tr> +<tr> +<td>userpassword</td> +<td>VARCHAR(64)</td> +<td> </td> +</tr> +<tr> +<td>homedirectory</td> +<td>VARCHAR(128)</td> +<td> </td> +</tr> +<tr> +<td>enableflag</td> +<td>BOOLEAN</td> +<td>TRUE</td> +</tr> +<tr> +<td>writepermission</td> +<td>BOOLEAN</td> +<td>FALSE</td> +</tr> +<tr> +<td>idletime</td> +<td>INT</td> +<td>0</td> +</tr> +<tr> +<td>uploadrate</td> +<td>INT</td> +<td>0</td> +</tr> +<tr> +<td>downloadrate</td> +<td>INT</td> +<td>0</td> +</tr> +<tr> +<td>maxloginnumber</td> +<td>INT</td> +<td>0</td> +</tr> +<tr> +<td>maxloginperip</td> +<td>INT</td> +<td>0</td> +</tr> +</tbody> +</table> </div><!-- rightColumn --> <div id="endContent"></div> Modified: websites/staging/mina/trunk/content/ftpserver/configuration_user_manager_file.html ============================================================================== --- websites/staging/mina/trunk/content/ftpserver/configuration_user_manager_file.html (original) +++ websites/staging/mina/trunk/content/ftpserver/configuration_user_manager_file.html Wed Oct 31 15:23:23 2012 @@ -110,34 +110,35 @@ <h1 id="file-based-user-manager">File based user manager</h1> <p>This is the default user manager. It uses a properties file to store all the user information.</p> <h2 id="example">Example</h2> -<p><DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent"> -<PRE class="code-java"> -<file-user-manager file=<SPAN class="code-quote">"users.properties"</SPAN> encrypt-passwords=<SPAN class="code-quote">"<SPAN class="code-keyword">true</SPAN>"</SPAN> /> -</PRE> -</DIV></DIV> </p> +<div class="codehilite"><pre><span class="o"><</span><span class="n">file</span><span class="o">-</span><span class="n">user</span><span class="o">-</span><span class="n">manager</span> <span class="n">file</span><span class="o">=</span><span class="s">"users.properties"</span> <span class="n">encrypt</span><span class="o">-</span><span class="n">passwords</span><span class="o">=</span><span class="s">"true"</span><span class="o">></span> +</pre></div> + + <h2 id="file-user-manager-element">file-user-manager element</h2> -<p><DIV class="table-wrap"> -<TABLE class="confluenceTable"><TBODY> -<TR> -<TH class="confluenceTh"> Attribute </TH> -<TH class="confluenceTh"> Description </TH> -<TH class="confluenceTh"> Required </TH> -<TH class="confluenceTh"> Default value </TH> -</TR> -<TR> -<TD class="confluenceTd"> file </TD> -<TD class="confluenceTd"> Path to the properties file for storing users </TD> -<TD class="confluenceTd"> Yes </TD> -<TD class="confluenceTd"> </TD> -</TR> -<TR> -<TD class="confluenceTd"> encrypt-passwords </TD> -<TD class="confluenceTd"> It indicates how to stored password are encrypted. Possible values are "clear" for clear text, "md5" for hashed using MD5 or "salted" for hashed salted passwords (including multiple hash iterations). "salted" is encouraged. </TD> -<TD class="confluenceTd"> No </TD> -<TD class="confluenceTd"> md5 </TD> -</TR> -</TBODY></TABLE> -</DIV></p> +<table> +<thead> +<tr> +<th>Attribute</th> +<th>Description</th> +<th>Required</th> +<th>Default value</th> +</tr> +</thead> +<tbody> +<tr> +<td>file</td> +<td>Path to the properties file for storing users</td> +<td>Yes</td> +<td> </td> +</tr> +<tr> +<td>encrypt-passwords</td> +<td>It indicates how to stored password are encrypted. Possible values are "clear" for clear text, "md5" for hashed using MD5 or "salted" for hashed salted passwords (including multiple hash iterations). "salted" is encouraged.</td> +<td>No</td> +<td>md5</td> +</tr> +</tbody> +</table> </div><!-- rightColumn --> <div id="endContent"></div>