diff --git a/core/java/src/net/i2p/client/I2PSessionImpl.java b/core/java/src/net/i2p/client/I2PSessionImpl.java index 285aaa780bfd98c2dd369e13b2ee90ff999ece16..65636a30bb48ab5aba26f1ff51279ef8f871e582 100644 --- a/core/java/src/net/i2p/client/I2PSessionImpl.java +++ b/core/java/src/net/i2p/client/I2PSessionImpl.java @@ -164,8 +164,8 @@ abstract class I2PSessionImpl implements I2PSession, I2CPMessageReader.I2CPMessa } /** - * Parse the config for anything we know about - * + * Parse the config for anything we know about. + * Also fill in the authorization properties if missing. */ protected void loadConfig(Properties options) { _options = new Properties(); @@ -180,6 +180,18 @@ abstract class I2PSessionImpl implements I2PSession, I2CPMessageReader.I2CPMessa + LISTEN_PORT, nfe); _portNum = LISTEN_PORT; } + + // auto-add auth if required, not set in the options, and we are in the same JVM + if (_context.isRouterContext() && + Boolean.valueOf(_context.getProperty("i2cp.auth")).booleanValue() && + ((!options.containsKey("i2cp.username")) || (!options.containsKey("i2cp.password")))) { + String configUser = _context.getProperty("i2cp.username"); + String configPW = _context.getProperty("i2cp.password"); + if (configUser != null && configPW != null) { + _options.setProperty("i2cp.username", configUser); + _options.setProperty("i2cp.password", configPW); + } + } } private Properties filter(Properties options) {