11package top .meethigher .ftp .server .utils ;
22
3+ import org .apache .ftpserver .ConnectionConfig ;
34import org .apache .ftpserver .DataConnectionConfigurationFactory ;
45import org .apache .ftpserver .FtpServer ;
56import org .apache .ftpserver .FtpServerFactory ;
67import org .apache .ftpserver .ftplet .Authority ;
78import org .apache .ftpserver .ftplet .UserManager ;
9+ import org .apache .ftpserver .impl .DefaultConnectionConfig ;
10+ import org .apache .ftpserver .impl .DefaultDataConnectionConfiguration ;
811import org .apache .ftpserver .listener .Listener ;
912import org .apache .ftpserver .usermanager .impl .BaseUser ;
1013import org .apache .ftpserver .usermanager .impl .ConcurrentLoginPermission ;
@@ -105,6 +108,12 @@ public static FTPServerProperties ftpServerProperties() {
105108 p .setIdleSeconds (properties .getInteger ("idleSeconds" , p .getIdleSeconds ()));
106109 p .setActiveLocalPort (properties .getInteger ("activeLocalPort" , p .getActiveLocalPort ()));
107110 p .setPassivePorts (properties .getString ("passivePorts" , p .getPassivePorts ()));
111+ p .setAnonymousLoginEnabled (properties .getBoolean ("anonymousLoginEnabled" , p .isAnonymousLoginEnabled ()));
112+ p .setLoginFailureDelay (properties .getInteger ("loginFailureDelay" , p .getLoginFailureDelay ()));
113+ p .setMaxLogins (properties .getInteger ("maxLogins" , p .getMaxLogins ()));
114+ p .setMaxAnonymousLogins (properties .getInteger ("maxAnonymousLogins" , p .getMaxAnonymousLogins ()));
115+ p .setMaxLoginFailures (properties .getInteger ("maxLoginFailures" , p .getMaxLoginFailures ()));
116+ p .setMaxThreads (properties .getInteger ("maxThreads" , p .getMaxThreads ()));
108117 p .setWebPort (properties .getInteger ("web.port" , p .getWebPort ()));
109118 p .setWebUsername (properties .getString ("web.username" , p .getWebUsername ()));
110119 p .setWebPassword (properties .getString ("web.password" , p .getWebPassword ()));
@@ -180,6 +189,11 @@ public static Listener listener(FTPServerProperties p) {
180189 return listenerFactory .createListener ();
181190 }
182191
192+ public static ConnectionConfig connectionConfig (FTPServerProperties p ) {
193+ return new DefaultConnectionConfig (p .isAnonymousLoginEnabled (), p .getLoginFailureDelay (),
194+ p .getMaxLogins (), p .getMaxAnonymousLogins (), p .getMaxLoginFailures (), p .getMaxThreads ());
195+ }
196+
183197 public static UserManager userManager (List <BaseUser > list ) {
184198 MemoryPropertiesUserManagerFactory propertiesUserManagerFactory = new MemoryPropertiesUserManagerFactory ();
185199 UserManager um = propertiesUserManagerFactory .createUserManager ();
@@ -193,8 +207,10 @@ public static UserManager userManager(List<BaseUser> list) {
193207 }
194208
195209 public static AuditFtpServer ftpServer (Listener listener ,
196- UserManager userManager ) {
210+ UserManager userManager , ConnectionConfig connectionConfig ) {
197211 AuditFtpServerFactory serverFactory = new AuditFtpServerFactory ();
212+ // 配置连接限制
213+ serverFactory .setConnectionConfig (connectionConfig );
198214 //请不要移除default
199215 serverFactory .addListener ("default" , listener );
200216 serverFactory .setUserManager (userManager );
0 commit comments