From d5dcccd1f89aae12a2aa0926c0569c68314a3d45 Mon Sep 17 00:00:00 2001 From: r3352 Date: Sun, 5 Apr 2026 20:48:53 -0400 Subject: [PATCH] Restore password authentication for EncodingServer connections --- java/sage/EncodingServer.java | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/java/sage/EncodingServer.java b/java/sage/EncodingServer.java index d5fa04733..dcfd95d32 100644 --- a/java/sage/EncodingServer.java +++ b/java/sage/EncodingServer.java @@ -229,16 +229,24 @@ public void run() //mySock.setTcpNoDelay(true); outStream = new java.io.DataOutputStream(new java.io.BufferedOutputStream(mySock.getOutputStream())); inStream = new java.io.DataInputStream(new java.io.BufferedInputStream(mySock.getInputStream())); - /* String pass = Sage.readLineBytes(inStream); - if (!pass.equalsIgnoreCase(Sage.get(ENCODING_SERVER_PASSWORD_MD5, ""))) - { - outStream.write("INVALID_PASSWORD\r\n".getBytes(Sage.CHARSET)); - outStream.flush(); - } - else // valid password, accept the encoding command - */ - // outStream.write("OK\r\n".getBytes(Sage.CHARSET)); - // outStream.flush(); + String configuredPass = Sage.get(ENCODING_SERVER_PASSWORD_MD5, ""); + if (configuredPass.length() > 0) + { + String pass = Sage.readLineBytes(inStream); + if (!pass.equalsIgnoreCase(configuredPass)) + { + outStream.write("INVALID_PASSWORD\r\n".getBytes(Sage.BYTE_CHARSET)); + outStream.flush(); + if (Sage.DBG) System.out.println("EncodingServer auth failed, closing connection from " + mySock); + return; + } + else + { + outStream.write("OK\r\n".getBytes(Sage.BYTE_CHARSET)); + outStream.flush(); + if (Sage.DBG) System.out.println("EncodingServer auth succeeded from " + mySock); + } + } while (true) { String str = Sage.readLineBytes(inStream);