From e293b25bb7f321b6851e4062793653e01caa9d55 Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Sun, 14 Nov 2010 14:50:45 +0000
Subject: [PATCH] I2CP username/pw auth (client side)

---
 core/java/src/net/i2p/client/I2PSessionImpl.java | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/core/java/src/net/i2p/client/I2PSessionImpl.java b/core/java/src/net/i2p/client/I2PSessionImpl.java
index 285aaa780b..65636a30bb 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) {
-- 
GitLab