This is an automated email from the ASF dual-hosted git repository.

elecharny pushed a commit to branch 1.2.X
in repository https://gitbox.apache.org/repos/asf/mina-ftpserver.git

commit f64e0611bd2e95b72baa4c51c55a0b3e07e593b1
Author: emmanuel lecharny <elecha...@apache.org>
AuthorDate: Wed Jul 12 09:42:04 2023 +0200

    Used try-with-resources
---
 .../usermanager/impl/PropertiesUserManager.java    | 114 ++++++++-------------
 1 file changed, 44 insertions(+), 70 deletions(-)

diff --git 
a/core/src/main/java/org/apache/ftpserver/usermanager/impl/PropertiesUserManager.java
 
b/core/src/main/java/org/apache/ftpserver/usermanager/impl/PropertiesUserManager.java
index a896019e..64138ab9 100644
--- 
a/core/src/main/java/org/apache/ftpserver/usermanager/impl/PropertiesUserManager.java
+++ 
b/core/src/main/java/org/apache/ftpserver/usermanager/impl/PropertiesUserManager.java
@@ -42,7 +42,6 @@ import org.apache.ftpserver.usermanager.PasswordEncryptor;
 import org.apache.ftpserver.usermanager.PropertiesUserManagerFactory;
 import org.apache.ftpserver.usermanager.UsernamePasswordAuthentication;
 import org.apache.ftpserver.util.BaseProperties;
-import org.apache.ftpserver.util.IoUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -130,8 +129,7 @@ public class PropertiesUserManager extends 
AbstractUserManager {
     /**
      * Internal constructor, do not use directly. Use {@link 
PropertiesUserManagerFactory} instead.
      */
-    public PropertiesUserManager(PasswordEncryptor passwordEncryptor,
-            File userDataFile, String adminName) {
+    public PropertiesUserManager(PasswordEncryptor passwordEncryptor, File 
userDataFile, String adminName) {
         super(adminName, passwordEncryptor);
 
         loadFromFile(userDataFile);
@@ -157,32 +155,25 @@ public class PropertiesUserManager extends 
AbstractUserManager {
                     this.userDataFile = userDataFile;
 
                     LOG.debug("File found on file system");
-                    FileInputStream fis = null;
-                    try {
-                        fis = new FileInputStream(userDataFile);
+
+                    try ( FileInputStream fis = new 
FileInputStream(userDataFile)) {
                         userDataProp.load(fis);
-                    } finally {
-                        IoUtils.close(fis);
                     }
                 } else {
                     // try loading it from the classpath
-                    LOG
-                            .debug("File not found on file system, try loading 
from classpath");
+                    LOG.debug("File not found on file system, try loading from 
classpath");
 
-                    InputStream is = getClass().getClassLoader()
-                            .getResourceAsStream(userDataFile.getPath());
+                    //InputStream is = 
getClass().getClassLoader().getResourceAsStream(userDataFile.getPath());
 
-                    if (is != null) {
-                        try {
+                    try (InputStream is = 
getClass().getClassLoader().getResourceAsStream(userDataFile.getPath())) {
+                        if (is != null) {
                             userDataProp.load(is);
-                        } finally {
-                            IoUtils.close(is);
-                        }
-                    } else {
-                        throw new FtpServerConfigurationException(
+                        } else {
+                            throw new FtpServerConfigurationException(
                                 "User data file specified but could not be 
located, "
                                         + "neither on the file system or in 
the classpath: "
                                         + userDataFile.getPath());
+                        }
                     }
                 }
             }
@@ -200,14 +191,9 @@ public class PropertiesUserManager extends 
AbstractUserManager {
                 LOG.debug("URL configured, will try loading");
 
                 userUrl = userDataPath;
-                InputStream is = null;
-
-                is = userDataPath.openStream();
-
-                try {
+                
+                try (InputStream is = userDataPath.openStream()) {
                     userDataProp.load(is);
-                } finally {
-                    IoUtils.close(is);
                 }
             }
         } catch (IOException e) {
@@ -251,47 +237,41 @@ public class PropertiesUserManager extends 
AbstractUserManager {
         if (usr.getName() == null) {
             throw new NullPointerException("User name is null.");
         }
+        
         String thisPrefix = PREFIX + usr.getName() + '.';
 
         // set other properties
         userDataProp.setProperty(thisPrefix + ATTR_PASSWORD, getPassword(usr));
 
         String home = usr.getHomeDirectory();
+        
         if (home == null) {
             home = "/";
         }
+        
         userDataProp.setProperty(thisPrefix + ATTR_HOME, home);
         userDataProp.setProperty(thisPrefix + ATTR_ENABLE, usr.getEnabled());
-        userDataProp.setProperty(thisPrefix + ATTR_WRITE_PERM, usr
-                .authorize(new WriteRequest()) != null);
-        userDataProp.setProperty(thisPrefix + ATTR_MAX_IDLE_TIME, usr
-                .getMaxIdleTime());
+        userDataProp.setProperty(thisPrefix + ATTR_WRITE_PERM, 
usr.authorize(new WriteRequest()) != null);
+        userDataProp.setProperty(thisPrefix + ATTR_MAX_IDLE_TIME, 
usr.getMaxIdleTime());
 
         TransferRateRequest transferRateRequest = new TransferRateRequest();
-        transferRateRequest = (TransferRateRequest) usr
-                .authorize(transferRateRequest);
+        transferRateRequest = (TransferRateRequest) 
usr.authorize(transferRateRequest);
 
         if (transferRateRequest != null) {
-            userDataProp.setProperty(thisPrefix + ATTR_MAX_UPLOAD_RATE,
-                    transferRateRequest.getMaxUploadRate());
-            userDataProp.setProperty(thisPrefix + ATTR_MAX_DOWNLOAD_RATE,
-                    transferRateRequest.getMaxDownloadRate());
+            userDataProp.setProperty(thisPrefix + 
ATTR_MAX_UPLOAD_RATE,transferRateRequest.getMaxUploadRate());
+            userDataProp.setProperty(thisPrefix + 
ATTR_MAX_DOWNLOAD_RATE,transferRateRequest.getMaxDownloadRate());
         } else {
             userDataProp.remove(thisPrefix + ATTR_MAX_UPLOAD_RATE);
             userDataProp.remove(thisPrefix + ATTR_MAX_DOWNLOAD_RATE);
         }
 
         // request that always will succeed
-        ConcurrentLoginRequest concurrentLoginRequest = new 
ConcurrentLoginRequest(
-                0, 0);
-        concurrentLoginRequest = (ConcurrentLoginRequest) usr
-                .authorize(concurrentLoginRequest);
+        ConcurrentLoginRequest concurrentLoginRequest = new 
ConcurrentLoginRequest(0, 0);
+        concurrentLoginRequest = (ConcurrentLoginRequest) 
usr.authorize(concurrentLoginRequest);
 
         if (concurrentLoginRequest != null) {
-            userDataProp.setProperty(thisPrefix + ATTR_MAX_LOGIN_NUMBER,
-                    concurrentLoginRequest.getMaxConcurrentLogins());
-            userDataProp.setProperty(thisPrefix + ATTR_MAX_LOGIN_PER_IP,
-                    concurrentLoginRequest.getMaxConcurrentLoginsPerIP());
+            userDataProp.setProperty(thisPrefix + 
ATTR_MAX_LOGIN_NUMBER,concurrentLoginRequest.getMaxConcurrentLogins());
+            userDataProp.setProperty(thisPrefix + 
ATTR_MAX_LOGIN_PER_IP,concurrentLoginRequest.getMaxConcurrentLoginsPerIP());
         } else {
             userDataProp.remove(thisPrefix + ATTR_MAX_LOGIN_NUMBER);
             userDataProp.remove(thisPrefix + ATTR_MAX_LOGIN_PER_IP);
@@ -309,22 +289,18 @@ public class PropertiesUserManager extends 
AbstractUserManager {
         }
 
         File dir = userDataFile.getAbsoluteFile().getParentFile();
+        
         if (dir != null && !dir.exists() && !dir.mkdirs()) {
-            String dirName = dir.getAbsolutePath();
             throw new FtpServerConfigurationException(
-                    "Cannot create directory for user data file : " + dirName);
+                    "Cannot create directory for user data file : " + 
dir.getAbsolutePath());
         }
 
         // save user data
-        FileOutputStream fos = null;
-        try {
-            fos = new FileOutputStream(userDataFile);
+        try (FileOutputStream fos = new FileOutputStream(userDataFile)){
             userDataProp.store(fos, "Generated file - don't edit (please)");
         } catch (IOException ex) {
             LOG.error("Failed saving user data", ex);
             throw new FtpException("Failed saving user data", ex);
-        } finally {
-            IoUtils.close(fos);
         }
     }
 
@@ -337,13 +313,17 @@ public class PropertiesUserManager extends 
AbstractUserManager {
         String thisPrefix = PREFIX + usrName + '.';
         Enumeration<?> propNames = userDataProp.propertyNames();
         ArrayList<String> remKeys = new ArrayList<String>();
+        
         while (propNames.hasMoreElements()) {
             String thisKey = propNames.nextElement().toString();
+            
             if (thisKey.startsWith(thisPrefix)) {
                 remKeys.add(thisKey);
             }
         }
+        
         Iterator<String> remKeysIt = remKeys.iterator();
+        
         while (remKeysIt.hasNext()) {
             userDataProp.remove(remKeysIt.next());
         }
@@ -380,6 +360,7 @@ public class PropertiesUserManager extends 
AbstractUserManager {
                 password = blankPassword;
             }
         }
+        
         return password;
     }
 
@@ -393,8 +374,10 @@ public class PropertiesUserManager extends 
AbstractUserManager {
         Enumeration<?> allKeys = userDataProp.propertyNames();
         int prefixlen = PREFIX.length();
         int suffixlen = suffix.length();
+        
         while (allKeys.hasMoreElements()) {
             String key = (String) allKeys.nextElement();
+        
             if (key.endsWith(suffix)) {
                 String name = key.substring(prefixlen);
                 int endIndex = name.length() - suffixlen;
@@ -404,6 +387,7 @@ public class PropertiesUserManager extends 
AbstractUserManager {
         }
 
         Collections.sort(ulst);
+        
         return ulst.toArray(new String[0]);
     }
 
@@ -419,8 +403,7 @@ public class PropertiesUserManager extends 
AbstractUserManager {
         BaseUser user = new BaseUser();
         user.setName(userName);
         user.setEnabled(userDataProp.getBoolean(baseKey + ATTR_ENABLE, true));
-        user.setHomeDirectory(userDataProp
-                .getProperty(baseKey + ATTR_HOME, "/"));
+        user.setHomeDirectory(userDataProp.getProperty(baseKey + ATTR_HOME, 
"/"));
 
         List<Authority> authorities = new ArrayList<Authority>();
 
@@ -428,24 +411,17 @@ public class PropertiesUserManager extends 
AbstractUserManager {
             authorities.add(new WritePermission());
         }
 
-        int maxLogin = userDataProp.getInteger(baseKey + ATTR_MAX_LOGIN_NUMBER,
-                0);
-        int maxLoginPerIP = userDataProp.getInteger(baseKey
-                + ATTR_MAX_LOGIN_PER_IP, 0);
+        int maxLogin = userDataProp.getInteger(baseKey + 
ATTR_MAX_LOGIN_NUMBER, 0);
+        int maxLoginPerIP = userDataProp.getInteger(baseKey + 
ATTR_MAX_LOGIN_PER_IP, 0);
 
         authorities.add(new ConcurrentLoginPermission(maxLogin, 
maxLoginPerIP));
 
-        int uploadRate = userDataProp.getInteger(
-                baseKey + ATTR_MAX_UPLOAD_RATE, 0);
-        int downloadRate = userDataProp.getInteger(baseKey
-                + ATTR_MAX_DOWNLOAD_RATE, 0);
+        int uploadRate = userDataProp.getInteger(baseKey + 
ATTR_MAX_UPLOAD_RATE, 0);
+        int downloadRate = userDataProp.getInteger(baseKey + 
ATTR_MAX_DOWNLOAD_RATE, 0);
 
         authorities.add(new TransferRatePermission(downloadRate, uploadRate));
-
         user.setAuthorities(authorities);
-
-        user.setMaxIdleTime(userDataProp.getInteger(baseKey
-                + ATTR_MAX_IDLE_TIME, 0));
+        user.setMaxIdleTime(userDataProp.getInteger(baseKey + 
ATTR_MAX_IDLE_TIME, 0));
 
         return user;
     }
@@ -455,14 +431,14 @@ public class PropertiesUserManager extends 
AbstractUserManager {
      */
     public boolean doesExist(String name) {
         String key = PREFIX + name + '.' + ATTR_HOME;
+        
         return userDataProp.containsKey(key);
     }
 
     /**
      * User authenticate method
      */
-    public User authenticate(Authentication authentication)
-            throws AuthenticationFailedException {
+    public User authenticate(Authentication authentication) throws 
AuthenticationFailedException {
         if (authentication instanceof UsernamePasswordAuthentication) {
             UsernamePasswordAuthentication upauth = 
(UsernamePasswordAuthentication) authentication;
 
@@ -477,8 +453,7 @@ public class PropertiesUserManager extends 
AbstractUserManager {
                 password = "";
             }
 
-            String storedPassword = userDataProp.getProperty(PREFIX + user
-                    + '.' + ATTR_PASSWORD);
+            String storedPassword = userDataProp.getProperty(PREFIX + user + 
'.' + ATTR_PASSWORD);
 
             if (storedPassword == null) {
                 // user does not exist
@@ -512,5 +487,4 @@ public class PropertiesUserManager extends 
AbstractUserManager {
             userDataProp = null;
         }
     }
-
 }

Reply via email to