From dfc67bdfeb02ec6f277ba78d48e0f5334525ac0f Mon Sep 17 00:00:00 2001 From: Nicolas Vuillamy Date: Wed, 1 Jul 2020 10:39:06 +0200 Subject: [PATCH] CodeNarcServer listens only to localhost (#59) Related to https://github.com/nvuillam/npm-groovy-lint/issues/56 --- .../main/com/nvuillam/CodeNarcServer.groovy | 14 ++++++++------ lib/java/CodeNarcServer.jar | Bin 27088 -> 27518 bytes lib/options.js | 2 +- package.json | 2 +- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/groovy/src/main/com/nvuillam/CodeNarcServer.groovy b/groovy/src/main/com/nvuillam/CodeNarcServer.groovy index c72b3ce6..af6bb1a1 100644 --- a/groovy/src/main/com/nvuillam/CodeNarcServer.groovy +++ b/groovy/src/main/com/nvuillam/CodeNarcServer.groovy @@ -8,6 +8,7 @@ package com.nvuillam // Java Http Server import com.sun.net.httpserver.HttpServer +import com.sun.net.httpserver.HttpExchange import java.net.InetSocketAddress import java.io.PrintStream @@ -67,9 +68,11 @@ class CodeNarcServer { // Launch HttpServer to receive CodeNarc linting request via Http /* groovylint-disable-next-line UnusedPrivateMethod */ private void initialize() { - // Create a server who accepts only calls from localhost - InetSocketAddress socketAddr = new InetSocketAddress(PORT) - def server = HttpServer.create(socketAddr, 0) + // Create a server who accepts only calls from localhost ( https://stackoverflow.com/questions/50770747/how-to-configure-com-sun-net-httpserver-to-accept-only-requests-from-localhost ) + + InetAddress localHost = InetAddress.getLoopbackAddress() + InetSocketAddress sockAddr = new InetSocketAddress(localHost, PORT) + HttpServer server = HttpServer.create(sockAddr, 0) Timer timer = new Timer() TimerTask currentTimerTask @@ -102,7 +105,6 @@ class CodeNarcServer { server.createContext('/request') { http -> System.setOut(new StorePrintStream(System.out)) println "INIT: Hit from Host: ${http.remoteAddress.hostName} on port: ${http.remoteAddress.holder.port}" - // Restart idle timer currentTimerTask.cancel() timer = new Timer() @@ -118,7 +120,7 @@ class CodeNarcServer { def bodyObj = jsonSlurper.parseText(body) requestKey = bodyObj.requestKey - manageRequestKey = (requestKey != null) + manageRequestKey = (requestKey != null && requestKey != 'undefined' ) if (manageRequestKey) { // Cancel already running request if necessary @@ -204,7 +206,7 @@ class CodeNarcServer { // Create executor & start server with a timeOut if inactive server.setExecutor(ex); // set up a custom executor for the server server.start(); // start the server - println "LISTENING on ${this.getHostString(socketAddr)}:${PORT}, hit Ctrl+C to exit." + println "LISTENING on ${this.getHostString(sockAddr)}:${PORT}, hit Ctrl+C to exit." currentTimerTask = timer.runAfter(this.maxIdleTime, { timerData -> stopServer(ex, server) }) } diff --git a/lib/java/CodeNarcServer.jar b/lib/java/CodeNarcServer.jar index 1df38520e1ac2e15fe97b31bffc833b23cfbc54a..560ee2922ffb95ac257320d3d8d661fe5a768b96 100644 GIT binary patch delta 23899 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%0ApLQ3rSk$1>y6D*BgcBW}k=n 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