You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by "Niklas Gustavsson (JIRA)" <ji...@apache.org> on 2009/09/17 08:19:57 UTC
[jira] Commented: (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:comment-tabpanel&focusedCommentId=12756379#action_12756379 ]
Niklas Gustavsson commented on FTPSERVER-335:
---------------------------------------------
I think this make a lot of sense. Patches would be much appreciated of course.
> 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.0
>
>
> 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 is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.