From 072d82e185ccbbfe0540e0c593490138f26ebe47 Mon Sep 17 00:00:00 2001 From: litoral05 Date: Tue, 5 May 2026 11:52:21 +0100 Subject: [PATCH] Add OpenVPN clients endpoint --- .../openvpn/openvpn/OpenVpnController.java | 20 ++++++++++++++++ .../openvpn/openvpn/OpenVpnService.java | 23 +++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 src/main/java/com/litoralregas/openvpn/openvpn/OpenVpnController.java create mode 100644 src/main/java/com/litoralregas/openvpn/openvpn/OpenVpnService.java diff --git a/src/main/java/com/litoralregas/openvpn/openvpn/OpenVpnController.java b/src/main/java/com/litoralregas/openvpn/openvpn/OpenVpnController.java new file mode 100644 index 0000000..418aa2a --- /dev/null +++ b/src/main/java/com/litoralregas/openvpn/openvpn/OpenVpnController.java @@ -0,0 +1,20 @@ +package com.litoralregas.openvpn.openvpn; + +import com.litoralregas.openvpn.ssh.SshCommandResult; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/api/openvpn") +public class OpenVpnController { + + private final OpenVpnService service; + + public OpenVpnController(OpenVpnService service) { + this.service = service; + } + + @GetMapping("/clients") + public SshCommandResult getClients() { + return service.listClients(); + } +} \ No newline at end of file diff --git a/src/main/java/com/litoralregas/openvpn/openvpn/OpenVpnService.java b/src/main/java/com/litoralregas/openvpn/openvpn/OpenVpnService.java new file mode 100644 index 0000000..9de848c --- /dev/null +++ b/src/main/java/com/litoralregas/openvpn/openvpn/OpenVpnService.java @@ -0,0 +1,23 @@ +package com.litoralregas.openvpn.openvpn; + +import com.litoralregas.openvpn.ssh.SshCommandResult; +import com.litoralregas.openvpn.ssh.SshService; +import org.springframework.stereotype.Service; + +@Service +public class OpenVpnService { + + private static final String TOOLS_PATH = "/var/litoral_regas_openvpn/tools"; + + private final SshService sshService; + + public OpenVpnService(SshService sshService) { + this.sshService = sshService; + } + + public SshCommandResult listClients() { + return sshService.executeOnConfiguredVps( + TOOLS_PATH + "/list-clients.sh" + ); + } +} \ No newline at end of file