You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by "Emmanuel Lecharny (JIRA)" <ji...@apache.org> on 2017/04/25 08:00:19 UTC

[jira] [Updated] (FTPSERVER-335) Create a HomeDirectoryResolver interface to Resolve a User's Home Directory

     [ https://issues.apache.org/jira/browse/FTPSERVER-335?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Emmanuel Lecharny updated FTPSERVER-335:
----------------------------------------
    Fix Version/s:     (was: 1.1.1)
                   1.1.2

> Create a HomeDirectoryResolver interface to Resolve a User's Home Directory
> ---------------------------------------------------------------------------
>
>                 Key: FTPSERVER-335
>                 URL: https://issues.apache.org/jira/browse/FTPSERVER-335
>             Project: FtpServer
>          Issue Type: Improvement
>    Affects Versions: 1.0.0, 1.0.1, 1.0.2
>            Reporter: Nick Padgett
>             Fix For: 1.1.2
>
>
> It would be useful to have a HomeDirectoryResolver interface to resolve a user's home directory.  I use such a class to do the following:
> 1) Prefix a base path to user home directories.  I have FtpServer deployed with two different applications.  In one applicationI need their home directory to begin with "d:/mnt" and in the other I need "/mnt".
> 2) Allow users to share a common home directory (i.e. "d:/mnt/users").
> 3) Allow users to have private home directories (i.e. "d:/mnt/users/npadgett").
> The interface I use looks something like:
> <code>
> public interface HomeDirectoryResolver {
>     String resolve(final User user);
> }
> </code>
> The class I use looks something like:
> <code>
> public class HomeDirectoryResolverImpl implements HomeDirectoryResolver {
>     public static enum Strategy {
>         SHARED, USERNAME, HOME_DIRECTORY
>     }
>     private final String basePath;
>     private final Strategy strategy;
>     public HomeDirectoryResolverImpl(final String basePath,
>             final Strategy strategy) {
>         this.basePath = basePath;
>         this.strategy = strategy;
>     }
>     public String resolve(final User user) {
>         String homeDirectory = this.basePath
>                 + (this.basePath.endsWith("/") ? "" : "/");
>         switch (this.strategy) {
>             case SHARED:
>                 // do nothing
>                 break;
>             case USERNAME:
>                 homeDirectory += user.getName();
>                 break;
>             case HOME_DIRECTORY:
>                 homeDirectory += user.getHomeDirectory();
>                 break;
>             default:
>                 throw new IllegalStateException();
>         }
>         return homeDirectory;
>     }
> }
> </code>



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)