[ 
https://issues.apache.org/jira/browse/FTPSERVER-181?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12637252#action_12637252
 ] 

Niklas Gustavsson commented on FTPSERVER-181:
---------------------------------------------

Patch provided by Andrea Francia on the mailing list, with approval for 
inclusion in the code:


Index: 
core/src/test/java/org/apache/ftpserver/usermanager/UserManagerTestTemplate.java
===================================================================
--- 
core/src/test/java/org/apache/ftpserver/usermanager/UserManagerTestTemplate.java
    (revision 701896)
+++ 
core/src/test/java/org/apache/ftpserver/usermanager/UserManagerTestTemplate.java
    (working copy)
@@ -47,6 +47,7 @@
     *
     * @see junit.framework.TestCase#setUp()
     */
+    @Override
    protected void setUp() throws Exception {
        userManager = createUserManager();
    }
@@ -86,7 +87,7 @@
                .authenticate(new UsernamePasswordAuthentication("user3", 
null)));
    }

-    public static class FooAuthentication implements Authentication {
+    private static class FooAuthentication implements Authentication {
    }

    public void testAuthenticateNullUser() throws Exception {
Index: ftplet-api/src/main/java/org/apache/ftpserver/ftplet/UserManager.java
===================================================================
--- ftplet-api/src/main/java/org/apache/ftpserver/ftplet/UserManager.java       
(revision 701896)
+++ ftplet-api/src/main/java/org/apache/ftpserver/ftplet/UserManager.java       
(working copy)
@@ -29,48 +29,69 @@

    /**
     * Get user by name.
+     *
+     * @param username the name to search for.
+     * @throws FtpException when the UserManager can't fulfill the request.
+     * @return the user with the specified name, or null if a such user does
+     *         not exist.
     */
-    User getUserByName(String login) throws FtpException;
+    User getUserByName(String username) throws FtpException;

    /**
     * Get all user names in the system.
+     *
+     * @throws FtpException when the UserManager can't fulfill the request.
+     * @return an array of username strings, note that the result should never
+     *         be null, if there is no users the result is an empty array.
     */
    String[] getAllUserNames() throws FtpException;

    /**
     * Delete the user from the system.
     *
+     * @throws FtpException when the UserManager can't fulfill the request.
     * @throws UnsupportedOperationException
     *             if UserManager in read-only mode
     */
-    void delete(String login) throws FtpException;
+    void delete(String username) throws FtpException;

    /**
     * Save user. If a new user, create it else update the existing user.
-     *
+     *
+     * @param user the Uset to save
+     * @throws FtpException when the UserManager can't fulfill the request.
     * @throws UnsupportedOperationException
     *             if UserManager in read-only mode
     */
    void save(User user) throws FtpException;

    /**
-     * User existance check.
+     * Check if the user exists.
+     * @param username the name of the user to check.
+     * @return true if the user exist, false otherwise.
     */
-    boolean doesExist(String login) throws FtpException;
+    boolean doesExist(String username) throws FtpException;

    /**
     * Authenticate user
+     * @throws FtpException when the UserManager can't fulfill the request.
+     * @param authentication
+     * @return the autheticated account.
     */
    User authenticate(Authentication authentication)
            throws AuthenticationFailedException;

    /**
     * Get admin user name
+     * @return the admin user name
+     * @throws FtpException when the UserManager can't fulfill the request.
     */
    String getAdminName() throws FtpException;

    /**
+     * Check if the user is admin.
     * @return true if user with this login is administrator
+     * @throws FtpException when the UserManager can't fulfill the request.
     */
-    boolean isAdmin(String login) throws FtpException;
+    boolean isAdmin(String username) throws FtpException;
 }
Index: pom.xml
===================================================================
--- pom.xml     (revision 701896)
+++ pom.xml     (working copy)
@@ -120,6 +120,10 @@
    <contributor>
      <name>Nick Vincent</name>
    </contributor>
+    <contributor>
+      <name>Andrea Francia</name>
+      <url>http://andreafrancia.blogspot.com</url>
+    </contributor>
  </contributors>

  <scm>

> The UserManager#authenticate() method lacks of documentation
> ------------------------------------------------------------
>
>                 Key: FTPSERVER-181
>                 URL: https://issues.apache.org/jira/browse/FTPSERVER-181
>             Project: FtpServer
>          Issue Type: Bug
>          Components: Ftplets
>    Affects Versions: 1.0-M3
>            Reporter: Andrea Francia
>             Fix For: 1.0-M4
>
>
> The UserManager interface documentation should be a form of contract between 
> the implementor and the user of the interface.
> After reading the documentation the implementor still has these question:
>  - when I should throw a AuthenticationFailedException?
>  - when I should return a null as a result?
>  - if the object receive two subsequent calls withe the same arguments the 
> objects returned should be the same (same reference), only equals, or they 
> can be different?

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to