Class RouterPasswordManager

  • Direct Known Subclasses:
    ConsolePasswordManager

    public class RouterPasswordManager
    extends PasswordManager
    Manage both plaintext and salted/hashed password storage in router.config.
    Since:
    0.9.4
    • Constructor Detail

      • RouterPasswordManager

        public RouterPasswordManager​(RouterContext ctx)
        // migrate these to b64 private static final String[] MIGRATE_FROM = { // This has a separate router.reseedProxy.username prop, // so let's not mess with it "router.reseedProxy.password", // Don't migrate these until we have a console form for them, // which we aren't likely to ever bother with "routerconsole.keyPassword", "routerconsole.keystorePassword", "i2cp.keyPassword", "i2cp.keystorePassword" }; private static final String[] MIGRATE_TO = { "router.reseedProxy.auth", "routerconsole.ssl.key.auth", "routerconsole.ssl.keystore.auth", "i2cp.ssl.key.auth", "i2cp.ssl.keystore.auth" };
    • Method Detail

      • migrate

        protected boolean migrate()
        Migrate from plaintext to salt/hash
        Returns:
        success or nothing to migrate
      • save

        public boolean save​(String realm,
                            String user,
                            String pw)
        Same as saveHash()
        Parameters:
        realm - e.g. i2cp, routerconsole, etc.
        user - null or "" for no user, already trimmed
        pw - plain text, already trimmed
        Returns:
        success
      • savePlain

        public boolean savePlain​(String realm,
                                 String user,
                                 String pw)
        This will fail if pw contains a '#' or if user contains '#' or '=' or starts with '!'
        Parameters:
        realm - e.g. i2cp, routerconsole, etc.
        user - null or "" for no user, already trimmed
        pw - plain text, already trimmed
        Returns:
        success
      • saveB64

        public boolean saveB64​(String realm,
                               String user,
                               String pw)
        This will fail if if user contains '#' or '=' or starts with '!'
        Parameters:
        realm - e.g. i2cp, routerconsole, etc.
        user - null or "" for no user, already trimmed
        pw - plain text, already trimmed
        Returns:
        success
      • saveHash

        public boolean saveHash​(String realm,
                                String user,
                                String pw)
        This will fail if user contains '#' or '=' or starts with '!'
        Parameters:
        realm - e.g. i2cp, routerconsole, etc.
        user - null or "" for no user, already trimmed
        pw - plain text, already trimmed
        Returns:
        success
      • remove

        public boolean remove​(String realm,
                              String user)
        Remove password, any kind.
        Parameters:
        realm - e.g. i2cp, routerconsole, etc.
        user - null or "" for no user, already trimmed
        Returns:
        success