You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by bt...@apache.org on 2023/06/01 08:50:32 UTC

[james-project] 06/09: JAMES-3906 Allow SSL reload of a specific server via the port number

This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 0f9d475675023796ec4c1595bbe05461be6a35ab
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Thu May 25 11:25:06 2023 +0700

    JAMES-3906 Allow SSL reload of a specific server via the port number
---
 .../apache/james/protocols/webadmin/ProtocolServerRoutes.java | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/server/protocols/webadmin/webadmin-protocols/src/main/java/org/apache/james/protocols/webadmin/ProtocolServerRoutes.java b/server/protocols/webadmin/webadmin-protocols/src/main/java/org/apache/james/protocols/webadmin/ProtocolServerRoutes.java
index 4dabb780c1..028b75f3e1 100644
--- a/server/protocols/webadmin/webadmin-protocols/src/main/java/org/apache/james/protocols/webadmin/ProtocolServerRoutes.java
+++ b/server/protocols/webadmin/webadmin-protocols/src/main/java/org/apache/james/protocols/webadmin/ProtocolServerRoutes.java
@@ -19,12 +19,14 @@
 
 package org.apache.james.protocols.webadmin;
 
+import java.util.Optional;
 import java.util.Set;
 
 import javax.inject.Inject;
 
 import org.apache.james.protocols.lib.netty.AbstractConfigurableAsyncServer;
 import org.apache.james.protocols.lib.netty.AbstractServerFactory;
+import org.apache.james.util.Port;
 import org.apache.james.webadmin.Routes;
 import org.apache.james.webadmin.utils.ErrorResponder;
 import org.apache.james.webadmin.utils.Responses;
@@ -32,7 +34,9 @@ import org.eclipse.jetty.http.HttpStatus;
 
 import com.github.fge.lambdas.Throwing;
 import com.google.common.base.Preconditions;
+import com.google.common.base.Predicate;
 
+import spark.Request;
 import spark.Service;
 
 public class ProtocolServerRoutes implements Routes {
@@ -67,12 +71,19 @@ public class ProtocolServerRoutes implements Routes {
             servers.stream()
                 .flatMap(serverFactory -> serverFactory.getServers().stream())
                 .filter(AbstractConfigurableAsyncServer::isEnabled)
+                .filter(filters(request))
                 .forEach(Throwing.consumer(AbstractConfigurableAsyncServer::reloadSSLCertificate));
 
             return Responses.returnNoContent(response);
         });
     }
 
+    private Predicate<AbstractConfigurableAsyncServer> filters(Request request) {
+        Optional<Port> port = Optional.ofNullable(request.queryParams("port")).map(Integer::parseUnsignedInt).map(Port::of);
+
+        return server -> port.map(p -> server.getPort() == p.getValue()).orElse(true);
+    }
+
     private boolean noServerEnabled() {
         return servers.stream()
             .flatMap(serverFactory -> serverFactory.getServers().stream())


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org