Uploaded image for project: 'FtpServer'
  1. FtpServer
  2. FTPSERVER-335

Create a HomeDirectoryResolver interface to Resolve a User's Home Directory

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 1.0.0, 1.0.1, 1.0.2
    • 1.1.5
    • None
    • None

    Description

      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>

      Attachments

        Activity

          People

            Unassigned Unassigned
            npadgett Nick Padgett
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: