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)