You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by ap...@apache.org on 2012/09/28 16:22:03 UTC

svn commit: r1391486 - /mina/site/trunk/content/ftpserver/

Author: apaliwal
Date: Fri Sep 28 14:22:02 2012
New Revision: 1391486

URL: http://svn.apache.org/viewvc?rev=1391486&view=rev
Log:
another set of FtpServer files

Added:
    mina/site/trunk/content/ftpserver/configuration.mdtext
    mina/site/trunk/content/ftpserver/configuration_listeners.mdtext
    mina/site/trunk/content/ftpserver/configuration_logging.mdtext
    mina/site/trunk/content/ftpserver/configuration_passive_ports.mdtext
    mina/site/trunk/content/ftpserver/configuration_server.mdtext
    mina/site/trunk/content/ftpserver/configuration_ssltls_support.mdtext
    mina/site/trunk/content/ftpserver/configuration_user_manager.mdtext
    mina/site/trunk/content/ftpserver/configuration_user_manager_db.mdtext
    mina/site/trunk/content/ftpserver/configuration_user_manager_file.mdtext
    mina/site/trunk/content/ftpserver/ftpserver_as_windows_service.mdtext
    mina/site/trunk/content/ftpserver/installation.mdtext

Added: mina/site/trunk/content/ftpserver/configuration.mdtext
URL: http://svn.apache.org/viewvc/mina/site/trunk/content/ftpserver/configuration.mdtext?rev=1391486&view=auto
==============================================================================
--- mina/site/trunk/content/ftpserver/configuration.mdtext (added)
+++ mina/site/trunk/content/ftpserver/configuration.mdtext Fri Sep 28 14:22:02 2012
@@ -0,0 +1,52 @@
+Title: Configuration
+Notice:    Licensed to the Apache Software Foundation (ASF) under one
+           or more contributor license agreements.  See the NOTICE file
+           distributed with this work for additional information
+           regarding copyright ownership.  The ASF licenses this file
+           to you under the Apache License, Version 2.0 (the
+           "License"); you may not use this file except in compliance
+           with the License.  You may obtain a copy of the License at
+           .
+             http://www.apache.org/licenses/LICENSE-2.0
+           .
+           Unless required by applicable law or agreed to in writing,
+           software distributed under the License is distributed on an
+           "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+           KIND, either express or implied.  See the License for the
+           specific language governing permissions and limitations
+           under the License.
+
+
+# Configuration
+
+## Overview
+
+This document explains the Apache FTP Server configuration parameters. All the configuration parameters are grouped depending on the component where it has been used. The configuration format is XML based and comes with a matching XML Schema that can be used in XML editors to simplify configuration.
+
+The XML document scaffold looks like this:
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+&lt;server xmlns=<SPAN class="code-quote">&quot;http:<SPAN class="code-comment">//mina.apache.org/ftpserver/spring/v1&quot;</SPAN>
+</SPAN>	xmlns:xsi=<SPAN class="code-quote">&quot;http:<SPAN class="code-comment">//www.w3.org/2001/XMLSchema-instance&quot;</SPAN>
+</SPAN>	xsi:schemaLocation=<SPAN class="code-quote">&quot;http:<SPAN class="code-comment">//mina.apache.org/ftpserver/spring/v1 http://mina.apache.org/ftpserver/ftpserver-1.0.xsd&quot;</SPAN>
+</SPAN>	id=<SPAN class="code-quote">&quot;myServer&quot;</SPAN>&gt;
+&lt;/server&gt;
+</PRE>
+</DIV></DIV>
+
+The id attribute can be set to any value of your liking, but is required.
+
+In-between the server element, you can now add elements to configure each component within the server instance, such as listeners and user managers.
+
+## Integration with Spring Framework
+
+Apache FtpServer uses Spring Framework to implement the configuration. That also means that we get the added benefit of full integration with regular Spring XML configuration. For example, you can embed the "server" element where ever you like within you Spring configuration, and with FtpServer on the classpath, Spring will wire up the server for you.
+
+## Detailed configuration specifications
+
+The following pages contains the full documentation on the available configuration.
+
+* Server - the main server configuration such as connectivity limits
+* Listeners - configuration for listeners, such as SSL settings and ports
+* User Manager - configuration for user managers, for example how to set up a file based user manager

Added: mina/site/trunk/content/ftpserver/configuration_listeners.mdtext
URL: http://svn.apache.org/viewvc/mina/site/trunk/content/ftpserver/configuration_listeners.mdtext?rev=1391486&view=auto
==============================================================================
--- mina/site/trunk/content/ftpserver/configuration_listeners.mdtext (added)
+++ mina/site/trunk/content/ftpserver/configuration_listeners.mdtext Fri Sep 28 14:22:02 2012
@@ -0,0 +1,314 @@
+Title: Listeners
+Notice:    Licensed to the Apache Software Foundation (ASF) under one
+           or more contributor license agreements.  See the NOTICE file
+           distributed with this work for additional information
+           regarding copyright ownership.  The ASF licenses this file
+           to you under the Apache License, Version 2.0 (the
+           "License"); you may not use this file except in compliance
+           with the License.  You may obtain a copy of the License at
+           .
+             http://www.apache.org/licenses/LICENSE-2.0
+           .
+           Unless required by applicable law or agreed to in writing,
+           software distributed under the License is distributed on an
+           "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+           KIND, either express or implied.  See the License for the
+           specific language governing permissions and limitations
+           under the License.
+
+
+# Listeners
+
+Listeners are the component in FtpServer which is responsible for listening on the network socket and when clients connect create the user session, execute commands and so on. An FtpServer can have multiple listeners at the same time, some examples include:
+
+* one listener on port 21 (the default option)
+* one cleartext listener on port 21 and one for implicit SSL on port 22
+* one cleartext listener in an internal IP address only and one for implicit SSL for the external IP address
+
+Listeners are identified by a name, the default listener is identified by "default".
+
+The main network configuration is performed on the listeners, for example the port to listen on and SSL configuration.
+
+Within the XML configuration format, all listeners are configured in the "listeners" element. A XML configuration example can therefore look like:
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+&lt;listeners&gt;
+    &lt;nio-listener name=<SPAN class="code-quote">&quot;<SPAN class="code-keyword">default</SPAN>&quot;</SPAN> port=<SPAN class="code-quote">&quot;2222&quot;</SPAN> implicit-ssl=<SPAN class="code-quote">&quot;<SPAN class="code-keyword">true</SPAN>&quot;</SPAN> idle-timeout=<SPAN class="code-quote">&quot;60&quot;</SPAN> local-address=<SPAN class="code-quote">&quot;1.2.3.4&quot;</SPAN>&gt;
+                &lt;ssl&gt;
+                    &lt;keystore file=<SPAN class="code-quote">&quot;mykeystore.jks&quot;</SPAN> password=<SPAN class="code-quote">&quot;secret&quot;</SPAN> key-password=<SPAN class="code-quote">&quot;otherSecret&quot;</SPAN> /&gt;
+                    &lt;truststore file=<SPAN class="code-quote">&quot;mytruststore.jks&quot;</SPAN> password=<SPAN class="code-quote">&quot;secret&quot;</SPAN>/&gt;
+                &lt;/ssl&gt;
+                &lt;data-connection idle-timeout=<SPAN class="code-quote">&quot;60&quot;</SPAN>&gt;
+                    &lt;active enabled=<SPAN class="code-quote">&quot;<SPAN class="code-keyword">true</SPAN>&quot;</SPAN> local-address=<SPAN class="code-quote">&quot;1.2.3.4&quot;</SPAN> local-port=<SPAN class="code-quote">&quot;2323&quot;</SPAN> ip-check=<SPAN class="code-quote">&quot;<SPAN class="code-keyword">true</SPAN>&quot;</SPAN>/&gt;
+                    &lt;passive ports=<SPAN class="code-quote">&quot;123-125&quot;</SPAN> address=<SPAN class="code-quote">&quot;1.2.3.4&quot;</SPAN> external-address=<SPAN class="code-quote">&quot;1.2.3.4&quot;</SPAN> /&gt;
+                &lt;/data-connection&gt;
+                &lt;blacklist&gt;1.2.3.0/16, 1.2.4.0/16, 1.2.3.4&lt;/blacklist&gt;              
+            &lt;/nio-listener&gt;
+&lt;/listeners&gt;
+</PRE>
+</DIV></DIV>
+
+## nio-listener element
+
+The listener shipped with FtpServer is called "nio-listener" since it is based Java NIO for performance and scalability.
+
+<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"> name </TD>
+<TD class="confluenceTd"> The listener name, if &quot;default&quot; it will override the settings on the default listener </TD>
+<TD class="confluenceTd"> Yes </TD>
+<TD class="confluenceTd">&nbsp;</TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> port </TD>
+<TD class="confluenceTd"> The port on which the listener will accept connections </TD>
+<TD class="confluenceTd"> No </TD>
+<TD class="confluenceTd"> 21 </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> local-address </TD>
+<TD class="confluenceTd"> Server address the listener will bind to </TD>
+<TD class="confluenceTd"> No </TD>
+<TD class="confluenceTd"> All available </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> implicit-ssl </TD>
+<TD class="confluenceTd"> True if the listener should use implicit SSL </TD>
+<TD class="confluenceTd"> No </TD>
+<TD class="confluenceTd"> false </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> idle-timeout </TD>
+<TD class="confluenceTd"> The number of seconds before an inactive client is disconnected. If this value is set to 0, the idle time is disabled (a client can idle forever without getting disconnected by the server). If a lower maximum idle time is configured on a user (e.g. using the PropertiesUserManager idletime configuration), it will override the listener value. Thus, the listener value enforce the upper threshold, but lower values can be provided per user. </TD>
+<TD class="confluenceTd"> No </TD>
+<TD class="confluenceTd"> 300 </TD>
+</TR>
+</TBODY></TABLE>
+</DIV>
+
+## ssl element
+
+Required for listeners that should provide FTPS support.
+
+<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"> protocol </TD>
+<TD class="confluenceTd"> The SSL protocol to use. Supported values are &quot;SSL&quot; and &quot;TLS&quot; </TD>
+<TD class="confluenceTd"> No </TD>
+<TD class="confluenceTd"> TLS </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> client-authentication </TD>
+<TD class="confluenceTd"> Should client authentication be performed? Supported values are &quot;NEED&quot;, &quot;WANT&quot; and &quot;NONE&quot; </TD>
+<TD class="confluenceTd"> No </TD>
+<TD class="confluenceTd"> NONE </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> enabled-ciphersuites </TD>
+<TD class="confluenceTd"> A space-separated list of cipher suites to enable for this connection. The exact cipher suites that can be used depends on the Java version used, <A href="http://java.sun.com/j2se/1.5.0/docs/guide/security/jsse/JSSERefGuide.html#AppA" class="external-link" rel="nofollow">here</A> are the names for Sun's JSSE provider. </TD>
+<TD class="confluenceTd"> No </TD>
+<TD class="confluenceTd"> All cipher suites are enabled </TD>
+</TR>
+</TBODY></TABLE>
+</DIV>
+
+## keystore element
+
+This element is required if the ssl element is provided. It provides configuration for the key store used for finding the private key and server certificate for the FTP server.
+
+<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 key store file </TD>
+<TD class="confluenceTd"> Yes </TD>
+<TD class="confluenceTd">&nbsp;</TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> password </TD>
+<TD class="confluenceTd"> The password for the key store </TD>
+<TD class="confluenceTd"> Yes </TD>
+<TD class="confluenceTd">&nbsp;</TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> key-password </TD>
+<TD class="confluenceTd"> Password for the key within the key store </TD>
+<TD class="confluenceTd"> No </TD>
+<TD class="confluenceTd"> Key store password </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> key-alias </TD>
+<TD class="confluenceTd"> Alias of the key to use within the key store </TD>
+<TD class="confluenceTd"> No </TD>
+<TD class="confluenceTd"> Uses first key found </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> type </TD>
+<TD class="confluenceTd"> Key store type </TD>
+<TD class="confluenceTd"> No </TD>
+<TD class="confluenceTd"> JRE key store default type, normally JKS </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> algorithm </TD>
+<TD class="confluenceTd"> Key store algorithm </TD>
+<TD class="confluenceTd"> No </TD>
+<TD class="confluenceTd"> SunX509 </TD>
+</TR>
+</TBODY></TABLE>
+</DIV>
+
+## truststore element
+
+This element provides configuration for the trust store used for locating trusted certificates.
+
+<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 trust store file </TD>
+<TD class="confluenceTd"> Yes </TD>
+<TD class="confluenceTd">&nbsp;</TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> password </TD>
+<TD class="confluenceTd"> The password for the trust store </TD>
+<TD class="confluenceTd"> No </TD>
+<TD class="confluenceTd"> Certificates can be read without password </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> type </TD>
+<TD class="confluenceTd"> Trust store type </TD>
+<TD class="confluenceTd"> No </TD>
+<TD class="confluenceTd"> JRE key store default type, normally JKS </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> algorithm </TD>
+<TD class="confluenceTd"> Trust store algorithm </TD>
+<TD class="confluenceTd"> No </TD>
+<TD class="confluenceTd"> SunX509 </TD>
+</TR>
+</TBODY></TABLE>
+</DIV>
+
+## data-connection element
+
+This element provides configuration for the data connection.
+
+<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"> idle-timeout </TD>
+<TD class="confluenceTd"> Number of seconds before an idle data connection is closed </TD>
+<TD class="confluenceTd"> No </TD>
+<TD class="confluenceTd"> 300 </TD>
+</TR>
+</TBODY></TABLE>
+</DIV>
+
+## active element
+
+This element provides configuration for active data connections.
+
+<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"> enabled </TD>
+<TD class="confluenceTd"> False if active data connections should not be allowed </TD>
+<TD class="confluenceTd"> No </TD>
+<TD class="confluenceTd"> true </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> local-address </TD>
+<TD class="confluenceTd"> The local address the server will use when creating a data connection </TD>
+<TD class="confluenceTd"> No </TD>
+<TD class="confluenceTd"> Any available </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> local-port </TD>
+<TD class="confluenceTd"> The local prt the server will use when creating a data connection </TD>
+<TD class="confluenceTd"> No </TD>
+<TD class="confluenceTd"> Any available </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> ip-check </TD>
+<TD class="confluenceTd"> Should the server check that the IP address for the data connection is the same as for the control socket? </TD>
+<TD class="confluenceTd"> No </TD>
+<TD class="confluenceTd"> false </TD>
+</TR>
+</TBODY></TABLE>
+</DIV>
+
+## passive element
+
+This element provides configuration for passive data connections.
+
+<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"> ports </TD>
+<TD class="confluenceTd"> The ports on which the server is allowed to accept passive data connections, see <A href="configure-passive-ports.html" title="Configure passive ports">Configure passive ports</A> for details </TD>
+<TD class="confluenceTd"> No </TD>
+<TD class="confluenceTd"> Any available port </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> address </TD>
+<TD class="confluenceTd"> The address on which the server will listen to passive data connections </TD>
+<TD class="confluenceTd"> No </TD>
+<TD class="confluenceTd"> The same address as the control socket for the session </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> external-address </TD>
+<TD class="confluenceTd"> The address the server will claim to be listening on in the PASV reply. Useful when the server is behind a NAT firewall and the client sees a different address than the server is using </TD>
+<TD class="confluenceTd"> No </TD>
+<TD class="confluenceTd">&nbsp;</TD>
+</TR>
+</TBODY></TABLE>
+</DIV>
+
+## blacklist element
+This element provides a list of black listed IP addresses and networks in [CIDR notation](http://en.wikipedia.org/wiki/CIDR).

Added: mina/site/trunk/content/ftpserver/configuration_logging.mdtext
URL: http://svn.apache.org/viewvc/mina/site/trunk/content/ftpserver/configuration_logging.mdtext?rev=1391486&view=auto
==============================================================================
--- mina/site/trunk/content/ftpserver/configuration_logging.mdtext (added)
+++ mina/site/trunk/content/ftpserver/configuration_logging.mdtext Fri Sep 28 14:22:02 2012
@@ -0,0 +1,92 @@
+Title: Logging
+Notice:    Licensed to the Apache Software Foundation (ASF) under one
+           or more contributor license agreements.  See the NOTICE file
+           distributed with this work for additional information
+           regarding copyright ownership.  The ASF licenses this file
+           to you under the Apache License, Version 2.0 (the
+           "License"); you may not use this file except in compliance
+           with the License.  You may obtain a copy of the License at
+           .
+             http://www.apache.org/licenses/LICENSE-2.0
+           .
+           Unless required by applicable law or agreed to in writing,
+           software distributed under the License is distributed on an
+           "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+           KIND, either express or implied.  See the License for the
+           specific language governing permissions and limitations
+           under the License.
+
+
+# Logging
+
+## FtpServer Logging
+
+FtpServer uses [SLF4J](http://slf4j.org/) throughout its internal code allowing the developer to choose a logging configuration that suits their needs, e.g java.util.logging or Log4J. SLF4J provides FtpServer the ability to log hierarchically across various log levels without needing to rely on a particular logging implementation.
+
+## MDC logging
+
+FtpServer supports [MDC logging](http://www.slf4j.org/manual.html#mdc). Basically, it provides session based information for the logger. Of primary interest in the case of FtpServer are the user name and remote IP address for each session. The log4j example below shows how to enable these to be logged.
+
+The following propeties are made available for MDC logging
+
+<DIV class="table-wrap">
+<TABLE class="confluenceTable"><TBODY>
+<TR>
+<TH class="confluenceTh">Token</TH>
+<TH class="confluenceTh">Description</TH>
+</TR>
+<TR>
+<TD class="confluenceTd">session</TD>
+<TD class="confluenceTd">  A unique session ID, the same available from FtpSession.getSessionId()</TD>
+</TR>
+<TR>
+<TD class="confluenceTd">userName</TD>
+<TD class="confluenceTd">  The user name of the user, only available after the USER command has been issued</TD>
+</TR>
+<TR>
+<TD class="confluenceTd">remoteAddress</TD>
+<TD class="confluenceTd">  The IP and local port of the client</TD>
+</TR>
+<TR>
+<TD class="confluenceTd">remoteIp</TD>
+<TD class="confluenceTd">  The IP of the client</TD>
+</TR>
+<TR>
+<TD class="confluenceTd">remotePort</TD>
+<TD class="confluenceTd">  The port used for the socket at the client</TD>
+</TR>
+<TR>
+<TD class="confluenceTd">localAddress</TD>
+<TD class="confluenceTd">  The local IP and port of the server for this session</TD>
+</TR>
+<TR>
+<TD class="confluenceTd">localIp</TD>
+<TD class="confluenceTd">  The local IP of the server for this session</TD>
+</TR>
+<TR>
+<TD class="confluenceTd">localPort</TD>
+<TD class="confluenceTd">  The local port of the server for this session</TD>
+</TR>
+</TBODY></TABLE>
+</DIV>
+
+## log4j
+
+If you need to setup detailed logging from within FtpServer's code, then you can use a simple log4j configuration. Note that this logging can be very verbose depending on the log level you chose to use. The log4j jar is bundled with the binary distribution. This is an optional jar file.
+
+The log4j configuration file location is <INSTALL_DIR>/common/classes/log4j.properties. You can modify this file to configure log4j.
+
+<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
+<PRE>log4j.rootLogger=DEBUG, R
+log4j.appender.R=org.apache.log4j.RollingFileAppender
+log4j.appender.R.File=./res/log/log.gen
+log4j.appender.R.MaxFileSize=10MB
+log4j.appender.R.MaxBackupIndex=10
+log4j.appender.R.layout=org.apache.log4j.PatternLayout
+log4j.appender.R.layout.ConversionPattern=[%5p] %d [%X{userName}] [%X{remoteIp}] %m%n
+</PRE>
+</DIV></DIV>
+
+This log4j configuration sets up a file called log.gen in your FTP Server ./res/log folder with a maximum file size of 10MB and up to 10 backups. DEBUG log level is specified.
+
+You should consult the log4j documentation for more options.

Added: mina/site/trunk/content/ftpserver/configuration_passive_ports.mdtext
URL: http://svn.apache.org/viewvc/mina/site/trunk/content/ftpserver/configuration_passive_ports.mdtext?rev=1391486&view=auto
==============================================================================
--- mina/site/trunk/content/ftpserver/configuration_passive_ports.mdtext (added)
+++ mina/site/trunk/content/ftpserver/configuration_passive_ports.mdtext Fri Sep 28 14:22:02 2012
@@ -0,0 +1,53 @@
+Title: Configure passive ports
+Notice:    Licensed to the Apache Software Foundation (ASF) under one
+           or more contributor license agreements.  See the NOTICE file
+           distributed with this work for additional information
+           regarding copyright ownership.  The ASF licenses this file
+           to you under the Apache License, Version 2.0 (the
+           "License"); you may not use this file except in compliance
+           with the License.  You may obtain a copy of the License at
+           .
+             http://www.apache.org/licenses/LICENSE-2.0
+           .
+           Unless required by applicable law or agreed to in writing,
+           software distributed under the License is distributed on an
+           "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+           KIND, either express or implied.  See the License for the
+           specific language governing permissions and limitations
+           under the License.
+
+
+# Configure passive ports
+
+When the client wants to use a passive data connection, the server should provide the port to use. By default, FtpServer will choose any available port. However this can be overridden using the configuration for the [passive data connection](configuration_listeners.html). The allowed passive ports can then be specified as a single port (e.g. 20020), multiple ports (e.g. 20020, 20030, 20040) or a range of ports (e.g. 20020-20030). Ranges can be closed (e.g. 20020-20030) or open ended (e.g. 60000-). Open ended ranges start at 1 and end at 65535, that is, the range 60000- will allow all ports between 60000 and 65535. Any combination of specified values or ranges can be used.
+
+When the server has used up all passive ports (one per client doing passive data transfer), the next clients will have to wait for an available port. It is therefore advised to provide multiple passive ports.
+
+If a value (specific port or start or end of an range) is outside of the allowed values of 0 and 65535, an error will be thrown at startup.
+
+## Examples:
+
+<DIV class="table-wrap">
+<TABLE class="confluenceTable"><TBODY>
+<TR>
+<TD class="confluenceTd"> 0 </TD>
+<TD class="confluenceTd"> Any available port is used as the passive port </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> 123 </TD>
+<TD class="confluenceTd"> Port 123 will be used as the passive port </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> 123,133 </TD>
+<TD class="confluenceTd"> Port 123 and 133 will be used as the passive port </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> 123-125 </TD>
+<TD class="confluenceTd"> Any port in a range from 123 to 125 will be used as the passive port </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> 123-125, 127, 129-130 </TD>
+<TD class="confluenceTd"> Any port in a range from 123 to 125, port 127 or in the range from 129 to 130 will be used as the passive port </TD>
+</TR>
+</TBODY></TABLE>
+</DIV>

Added: mina/site/trunk/content/ftpserver/configuration_server.mdtext
URL: http://svn.apache.org/viewvc/mina/site/trunk/content/ftpserver/configuration_server.mdtext?rev=1391486&view=auto
==============================================================================
--- mina/site/trunk/content/ftpserver/configuration_server.mdtext (added)
+++ mina/site/trunk/content/ftpserver/configuration_server.mdtext Fri Sep 28 14:22:02 2012
@@ -0,0 +1,97 @@
+Title: Server
+Notice:    Licensed to the Apache Software Foundation (ASF) under one
+           or more contributor license agreements.  See the NOTICE file
+           distributed with this work for additional information
+           regarding copyright ownership.  The ASF licenses this file
+           to you under the Apache License, Version 2.0 (the
+           "License"); you may not use this file except in compliance
+           with the License.  You may obtain a copy of the License at
+           .
+             http://www.apache.org/licenses/LICENSE-2.0
+           .
+           Unless required by applicable law or agreed to in writing,
+           software distributed under the License is distributed on an
+           "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+           KIND, either express or implied.  See the License for the
+           specific language governing permissions and limitations
+           under the License.
+
+
+# Server
+
+Some configuration is done for the entire server. This affects all listeners, for login limits, the sum of the logins for all listeners are enforced.
+
+Using the XML configuration, this following examples shows all available configurations for the server
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+&lt;server xmlns=<SPAN class="code-quote">&quot;http:<SPAN class="code-comment">//mina.apache.org/ftpserver/spring/v1&quot;</SPAN>
+</SPAN>	xmlns:xsi=<SPAN class="code-quote">&quot;http:<SPAN class="code-comment">//www.w3.org/2001/XMLSchema-instance&quot;</SPAN>
+</SPAN>	xsi:schemaLocation=<SPAN class="code-quote">&quot;http:<SPAN class="code-comment">//mina.apache.org/ftpserver/spring/v1 http://mina.apache.org/ftpserver/ftpserver-1.0.xsd&quot;</SPAN>
+</SPAN>        id=<SPAN class="code-quote">&quot;server&quot;</SPAN> 	
+        max-logins=<SPAN class="code-quote">&quot;500&quot;</SPAN>
+	anon-enabled=<SPAN class="code-quote">&quot;<SPAN class="code-keyword">false</SPAN>&quot;</SPAN>
+	max-anon-logins=<SPAN class="code-quote">&quot;123&quot;</SPAN>
+	max-login-failures=<SPAN class="code-quote">&quot;124&quot;</SPAN>
+	login-failure-delay=<SPAN class="code-quote">&quot;125&quot;</SPAN>
+	&gt;
+...
+&lt;/server&gt;
+</PRE>
+</DIV></DIV>
+
+## server element
+
+<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"> id </TD>
+<TD class="confluenceTd"> A unique identifier for this server within this XML configiration </TD>
+<TD class="confluenceTd"> Yes </TD>
+<TD class="confluenceTd">&nbsp;</TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> max-threads </TD>
+<TD class="confluenceTd"> The maximum number of threads used in the thread pool for handling client connections  </TD>
+<TD class="confluenceTd"> No </TD>
+<TD class="confluenceTd"> max-logins, or 16 if neither value is set </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> max-logins </TD>
+<TD class="confluenceTd"> The maximum number of simultaneous users  </TD>
+<TD class="confluenceTd"> No </TD>
+<TD class="confluenceTd"> 10 </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> max-anon-logins </TD>
+<TD class="confluenceTd"> The maximum number of simultaneous anonymous users  </TD>
+<TD class="confluenceTd"> No </TD>
+<TD class="confluenceTd"> 10 </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> anon-enabled </TD>
+<TD class="confluenceTd"> Are anonymous logins enabled?  </TD>
+<TD class="confluenceTd"> No </TD>
+<TD class="confluenceTd"> true </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> max-login-failures </TD>
+<TD class="confluenceTd"> The number of failed login attempts before the connection is closed </TD>
+<TD class="confluenceTd"> No </TD>
+<TD class="confluenceTd"> 3 </TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> login-failure-delay </TD>
+<TD class="confluenceTd"> The number of milliseconds that the connection is delayed after a failed login attempt. Used to limit to possibility of brute force guessing passwords. </TD>
+<TD class="confluenceTd"> No </TD>
+<TD class="confluenceTd"> 500 </TD>
+</TR>
+</TBODY></TABLE>
+</DIV>
+

Added: mina/site/trunk/content/ftpserver/configuration_ssltls_support.mdtext
URL: http://svn.apache.org/viewvc/mina/site/trunk/content/ftpserver/configuration_ssltls_support.mdtext?rev=1391486&view=auto
==============================================================================
--- mina/site/trunk/content/ftpserver/configuration_ssltls_support.mdtext (added)
+++ mina/site/trunk/content/ftpserver/configuration_ssltls_support.mdtext Fri Sep 28 14:22:02 2012
@@ -0,0 +1,82 @@
+Title: TLS-SSL Support
+Notice:    Licensed to the Apache Software Foundation (ASF) under one
+           or more contributor license agreements.  See the NOTICE file
+           distributed with this work for additional information
+           regarding copyright ownership.  The ASF licenses this file
+           to you under the Apache License, Version 2.0 (the
+           "License"); you may not use this file except in compliance
+           with the License.  You may obtain a copy of the License at
+           .
+             http://www.apache.org/licenses/LICENSE-2.0
+           .
+           Unless required by applicable law or agreed to in writing,
+           software distributed under the License is distributed on an
+           "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+           KIND, either express or implied.  See the License for the
+           specific language governing permissions and limitations
+           under the License.
+
+
+# TLS-SSL Support
+
+This document explains how to enable Apache FTP Server to use Transport Layer Security (TLS) for encrypted client-server communication.
+
+FtpServer uses the Java Secure Sockets Extension (JSSE) infrastructure to provide TLS/SSL sockets. JSSE comes packaged with several vendor Java distributions (i.e. Sun Java 1.4.x, IBM Java 1.3.x). For these distributions, please follow the vendor provided instructions for configuring the JVM to use JSSE services.
+
+## Security mode
+
+### Explicit Security (default)
+
+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.
+
+In this case, the listener should not use implicit SSL (the default value):
+
+<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
+<PRE>&lt;nio-listener name=&quot;default&quot; implicit-ssl=&quot;false&quot;&gt;
+</PRE>
+</DIV></DIV>
+
+### Implicit Security
+
+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:
+
+<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
+<PRE>&lt;nio-listener name=&quot;default&quot; implicit-ssl=&quot;true&quot;&gt;
+</PRE>
+</DIV></DIV>
+
+If you set the listener to use implicit security, enabling implicit security for the data connection should be conside
+
+### Data connection security
+
+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.
+
+<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
+<PRE>&lt;data-connection implicit-ssl=&quot;true&quot;&gt;
+</PRE>
+</DIV></DIV>
+
+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.
+
+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.
+
+<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 &quot;PROT P&quot; 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 &quot;PROT P&quot; </TD>
+</TR>
+</TBODY></TABLE>
+</DIV>
+
+### Detailed configuration
+
+Full documentation on all provided configuration is available on the [Listeners](configuration_listeners.html) page

Added: mina/site/trunk/content/ftpserver/configuration_user_manager.mdtext
URL: http://svn.apache.org/viewvc/mina/site/trunk/content/ftpserver/configuration_user_manager.mdtext?rev=1391486&view=auto
==============================================================================
--- mina/site/trunk/content/ftpserver/configuration_user_manager.mdtext (added)
+++ mina/site/trunk/content/ftpserver/configuration_user_manager.mdtext Fri Sep 28 14:22:02 2012
@@ -0,0 +1,33 @@
+Title: User Manager
+Notice:    Licensed to the Apache Software Foundation (ASF) under one
+           or more contributor license agreements.  See the NOTICE file
+           distributed with this work for additional information
+           regarding copyright ownership.  The ASF licenses this file
+           to you under the Apache License, Version 2.0 (the
+           "License"); you may not use this file except in compliance
+           with the License.  You may obtain a copy of the License at
+           .
+             http://www.apache.org/licenses/LICENSE-2.0
+           .
+           Unless required by applicable law or agreed to in writing,
+           software distributed under the License is distributed on an
+           "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+           KIND, either express or implied.  See the License for the
+           specific language governing permissions and limitations
+           under the License.
+
+
+# User Manager
+
+## Built in user managers
+
+FtpServer comes with two different user managers:
+
+* [File based user manager](configuration_user_manager_file.html)
+* [Database user manager](configuration_user_manager_db.html)
+
+## Custom User Manager
+
+You can write your own user manager to integrate it with your existing applications. Your custom user manager should implement org.apache.ftpserver.ftplet.UserManager interface. In your configuration file, you will have to use the Spring bean element to configure your custom user manager. This gives you all the power of Spring, for example integrating with your other beans. You can also provide a custom XML format by using the Spring XML extension mechanisms.
+
+

Added: mina/site/trunk/content/ftpserver/configuration_user_manager_db.mdtext
URL: http://svn.apache.org/viewvc/mina/site/trunk/content/ftpserver/configuration_user_manager_db.mdtext?rev=1391486&view=auto
==============================================================================
--- mina/site/trunk/content/ftpserver/configuration_user_manager_db.mdtext (added)
+++ mina/site/trunk/content/ftpserver/configuration_user_manager_db.mdtext Fri Sep 28 14:22:02 2012
@@ -0,0 +1,222 @@
+Title: Database user manager
+Notice:    Licensed to the Apache Software Foundation (ASF) under one
+           or more contributor license agreements.  See the NOTICE file
+           distributed with this work for additional information
+           regarding copyright ownership.  The ASF licenses this file
+           to you under the Apache License, Version 2.0 (the
+           "License"); you may not use this file except in compliance
+           with the License.  You may obtain a copy of the License at
+           .
+             http://www.apache.org/licenses/LICENSE-2.0
+           .
+           Unless required by applicable law or agreed to in writing,
+           software distributed under the License is distributed on an
+           "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+           KIND, either express or implied.  See the License for the
+           specific language governing permissions and limitations
+           under the License.
+
+
+# Database user manager
+
+You can store user user information in a database. JDBC is used to access the database. This user manager has been tested using MySQL, HSQLDB and FireBird database. All the user informations are stored in FTP_USER table. An example DDL file for the database is provided in <INSTALL_DIR>/res/ftp-db.sql.
+
+## Database JDBC libraries
+
+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.
+
+## Example
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+	&lt;db-user-manager encrypt-passwords=<SPAN class="code-quote">&quot;salted&quot;</SPAN>&gt;
+		&lt;data-source&gt;
+			&lt;beans:bean class=<SPAN class="code-quote">&quot;some.datasoure.class&quot;</SPAN> /&gt;
+		&lt;/data-source&gt;
+		&lt;insert-user&gt;INSERT INTO FTP_USER (userid, userpassword,
+			homedirectory, enableflag, writepermission, idletime, uploadrate,
+			downloadrate) VALUES ('{userid}', '{userpassword}', '{homedirectory}',
+			'{enableflag}', '{writepermission}', {idletime}, {uploadrate},
+			{downloadrate})&lt;/insert-user&gt;
+		&lt;update-user&gt;UPDATE FTP_USER SET
+			userpassword='{userpassword}',homedirectory='{homedirectory}',enableflag={enableflag},writepermission={writepermission},idletime={idletime},uploadrate={uploadrate},downloadrate={downloadrate}
+			WHERE userid='{userid}'&lt;/update-user&gt;
+		&lt;delete-user&gt;DELETE FROM FTP_USER WHERE userid = '{userid}'
+		&lt;/delete-user&gt;
+		&lt;select-user&gt;SELECT userid, userpassword, homedirectory,
+			enableflag, writepermission, idletime, uploadrate, downloadrate FROM
+			FTP_USER WHERE userid = '{userid}'&lt;/select-user&gt;
+		&lt;select-all-users&gt;SELECT userid FROM FTP_USER ORDER BY userid
+		&lt;/select-all-users&gt;
+		&lt;is-admin&gt;SELECT userid FROM FTP_USER WHERE userid='{userid}' AND
+			userid='admin'&lt;/is-admin&gt;
+		&lt;authenticate&gt;SELECT userpassword from FTP_USER WHERE userid='{userid}'&lt;/authenticate&gt;
+	&lt;/db-user-manager&gt;
+</PRE>
+</DIV></DIV>
+
+## Configuration Parameters
+
+### db-user-manager element
+
+<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 &quot;clear&quot; for clear text, &quot;md5&quot; for hashed using MD5 or &quot;salted&quot; for hashed salted passwords (including multiple hash iterations). &quot;salted&quot; is encouraged. </TD>
+<TD class="confluenceTd"> No </TD>
+<TD class="confluenceTd"> md5 </TD>
+</TR>
+</TBODY></TABLE>
+</DIV>
+
+
+<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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</TD>
+</TR>
+</TBODY></TABLE>
+</DIV>
+
+### Data source configuration
+
+The data source must be configured as described by the database provider. You can also use the general purpose [BasicDataSource](http://jakarta.apache.org/commons/dbcp/apidocs/org/apache/commons/dbcp/BasicDataSource.html) provided by the [Apache Commons DBCP project](http://jakarta.apache.org/commons/dbcp/).
+
+#### Example using the BasicDataSource to connect to MySQL
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+&lt;data-source&gt;
+	&lt;beans:bean class=<SPAN class="code-quote">&quot;org.apache.commons.dbcp.BasicDataSource&quot;</SPAN>&gt;
+          &lt;beans:property name=<SPAN class="code-quote">&quot;driverClassName&quot;</SPAN> value=<SPAN class="code-quote">&quot;com.mysql.jdbc.Driver&quot;</SPAN> /&gt;
+  	  &lt;beans:property name=<SPAN class="code-quote">&quot;url&quot;</SPAN> value=<SPAN class="code-quote">&quot;jdbc:mysql:<SPAN class="code-comment">//localhost/ftpd&quot;</SPAN> /&gt;
+</SPAN>   &lt;beans:property name=<SPAN class="code-quote">&quot;username&quot;</SPAN> value=<SPAN class="code-quote">&quot;myuser&quot;</SPAN> /&gt;
+  	  &lt;beans:property name=<SPAN class="code-quote">&quot;password&quot;</SPAN> value=<SPAN class="code-quote">&quot;secret&quot;</SPAN> /&gt;
+	&lt;/beans:bean&gt;
+&lt;/data-source&gt;
+</PRE>
+</DIV></DIV>
+
+#### FTP_USER Table Structure
+
+<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">&nbsp;</TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> userpassword </TD>
+<TD class="confluenceTd"> VARCHAR(64) </TD>
+<TD class="confluenceTd">&nbsp;</TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> homedirectory </TD>
+<TD class="confluenceTd"> VARCHAR(128) </TD>
+<TD class="confluenceTd">&nbsp;</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>
+
+
+
+

Added: mina/site/trunk/content/ftpserver/configuration_user_manager_file.mdtext
URL: http://svn.apache.org/viewvc/mina/site/trunk/content/ftpserver/configuration_user_manager_file.mdtext?rev=1391486&view=auto
==============================================================================
--- mina/site/trunk/content/ftpserver/configuration_user_manager_file.mdtext (added)
+++ mina/site/trunk/content/ftpserver/configuration_user_manager_file.mdtext Fri Sep 28 14:22:02 2012
@@ -0,0 +1,57 @@
+Title: File based user manager
+Notice:    Licensed to the Apache Software Foundation (ASF) under one
+           or more contributor license agreements.  See the NOTICE file
+           distributed with this work for additional information
+           regarding copyright ownership.  The ASF licenses this file
+           to you under the Apache License, Version 2.0 (the
+           "License"); you may not use this file except in compliance
+           with the License.  You may obtain a copy of the License at
+           .
+             http://www.apache.org/licenses/LICENSE-2.0
+           .
+           Unless required by applicable law or agreed to in writing,
+           software distributed under the License is distributed on an
+           "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+           KIND, either express or implied.  See the License for the
+           specific language governing permissions and limitations
+           under the License.
+
+
+# File based user manager
+
+This is the default user manager. It uses a properties file to store all the user information.
+
+## Example
+
+<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
+<PRE class="code-java">
+&lt;file-user-manager file=<SPAN class="code-quote">&quot;users.properties&quot;</SPAN> encrypt-passwords=<SPAN class="code-quote">&quot;<SPAN class="code-keyword">true</SPAN>&quot;</SPAN> /&gt;
+</PRE>
+</DIV></DIV> 
+
+## file-user-manager element
+
+<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">&nbsp;</TD>
+</TR>
+<TR>
+<TD class="confluenceTd"> encrypt-passwords </TD>
+<TD class="confluenceTd"> It indicates how to stored password are encrypted. Possible values are &quot;clear&quot; for clear text, &quot;md5&quot; for hashed using MD5 or &quot;salted&quot; for hashed salted passwords (including multiple hash iterations). &quot;salted&quot; is encouraged. </TD>
+<TD class="confluenceTd"> No </TD>
+<TD class="confluenceTd"> md5 </TD>
+</TR>
+</TBODY></TABLE>
+</DIV>
+
+

Added: mina/site/trunk/content/ftpserver/ftpserver_as_windows_service.mdtext
URL: http://svn.apache.org/viewvc/mina/site/trunk/content/ftpserver/ftpserver_as_windows_service.mdtext?rev=1391486&view=auto
==============================================================================
--- mina/site/trunk/content/ftpserver/ftpserver_as_windows_service.mdtext (added)
+++ mina/site/trunk/content/ftpserver/ftpserver_as_windows_service.mdtext Fri Sep 28 14:22:02 2012
@@ -0,0 +1,63 @@
+Title: Installing FtpServer as a Windows service
+Notice:    Licensed to the Apache Software Foundation (ASF) under one
+           or more contributor license agreements.  See the NOTICE file
+           distributed with this work for additional information
+           regarding copyright ownership.  The ASF licenses this file
+           to you under the Apache License, Version 2.0 (the
+           "License"); you may not use this file except in compliance
+           with the License.  You may obtain a copy of the License at
+           .
+             http://www.apache.org/licenses/LICENSE-2.0
+           .
+           Unless required by applicable law or agreed to in writing,
+           software distributed under the License is distributed on an
+           "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+           KIND, either express or implied.  See the License for the
+           specific language governing permissions and limitations
+           under the License.
+
+
+# Installing FtpServer as a Windows service
+
+## Install
+
+Apache FtpServer can be installed as a Windows service using the following command:
+
+<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
+<PRE>&lt;install dir&gt;bin\service install
+</PRE>
+</DIV></DIV>
+
+This will create a service called Apache FtpServer that can be started and stopped as a usual service.
+
+As a second parameter, the service identifier can be provided. This would normally be used if multiple FtpServer services should be installed, for example:
+
+<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
+<PRE><install dir>bin\service install ftpd2
+</PRE>
+</DIV></DIV>
+
+Without any further options, this will use the default configuration. If you want to use for example an XML configuration file you should run:
+
+<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
+<PRE><install dir>bin\service install ftpd <path to XML configuration file>
+</PRE>
+</DIV></DIV>
+
+## Service administration GUI
+
+After installing the service, it can be further configured using the service GUI by running:
+
+<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
+<PRE><install dir>bin\ftpdw
+</PRE>
+</DIV></DIV>
+
+## Uninstall
+
+To uninstall the service, use:
+
+<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
+<PRE><install dir>bin\service remove
+</PRE>
+</DIV></DIV>

Added: mina/site/trunk/content/ftpserver/installation.mdtext
URL: http://svn.apache.org/viewvc/mina/site/trunk/content/ftpserver/installation.mdtext?rev=1391486&view=auto
==============================================================================
--- mina/site/trunk/content/ftpserver/installation.mdtext (added)
+++ mina/site/trunk/content/ftpserver/installation.mdtext Fri Sep 28 14:22:02 2012
@@ -0,0 +1,67 @@
+Title: Installation
+Notice:    Licensed to the Apache Software Foundation (ASF) under one
+           or more contributor license agreements.  See the NOTICE file
+           distributed with this work for additional information
+           regarding copyright ownership.  The ASF licenses this file
+           to you under the Apache License, Version 2.0 (the
+           "License"); you may not use this file except in compliance
+           with the License.  You may obtain a copy of the License at
+           .
+             http://www.apache.org/licenses/LICENSE-2.0
+           .
+           Unless required by applicable law or agreed to in writing,
+           software distributed under the License is distributed on an
+           "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+           KIND, either express or implied.  See the License for the
+           specific language governing permissions and limitations
+           under the License.
+
+
+# Installation
+
+## Binary Distribution
+
+Download the binary distribution and unzip it. The zip file includes sample configuration files
+
+Typical server set up : <INSTALL_DIR>/res/conf/ftpd-typical.xml
+
+* Full example configuration file : <INSTALL_DIR>/res/conf/ftpd-full.xml
+* If you want to use your own jar files, you can put those jar files in system CLASSPATH or copy those jar files in the <INSTALL_DIR>/common/lib directory.
+
+To run the server, go to <INSTALL_DIR> directory and execute ftpd.bat (if Windows) or ftpd.sh (if UNIX or Linux). In this case you need to pass the configuration file location. Usage:
+
+<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
+<PRE>ftpd [&lt;options&gt;] [&lt;configuration file&gt;]
+  &lt;options&gt; := --default
+  &lt;configuration file&gt; := &lt;XML configuration file&gt;
+</PRE>
+</DIV></DIV>
+
+In case of no option, default configuration will be used.
+
+Installing FtpServer as a Windows service
+
+### Binary Distribution Directory Structure
+
+<DIV class="preformatted panel" style="border-width: 1px;"><DIV class="preformattedContent panelContent">
+<PRE> &lt;INSTALL_DIR&gt;
+      |
+      |--- common
+      |     |
+      |     |--- classes
+      |     |
+      |     |--- lib
+      |
+      |--- docs
+      |     
+      |--- javadoc
+      |
+      |--- res
+            |
+            |--- conf
+            |
+            |--- home
+            |
+            |--- log
+</PRE>
+</DIV></DIV>