fix: restrict supervisor drain to loopback

This commit is contained in:
Josh Creek
2026-08-31 21:49:22 +01:00
parent faede927fc
commit 6253b620a9
4 changed files with 42 additions and 2 deletions
+13
View File
@@ -167,3 +167,16 @@ func TestAssignedEndpointRejectsMalformedAddressAndPort(t *testing.T) {
server.Close()
}
}
func TestSupervisorRejectsRemoteOrPartialDrainConfiguration(t *testing.T) {
for _, config := range []Config{
{Command: []string{"/bin/sh", "-c", "exit 0"}, DrainURL: "https://example.com/drain", DrainToken: "token-1234567890123456"},
{Command: []string{"/bin/sh", "-c", "exit 0"}, DrainURL: "http://127.0.0.1/drain"},
{Command: []string{"/bin/sh", "-c", "exit 0"}, DrainToken: "token-1234567890123456"},
{Command: []string{"/bin/sh", "-c", "exit 0"}, DrainURL: "http://127.0.0.1/drain?token=leaked", DrainToken: "token-1234567890123456"},
} {
if _, err := New(config); err == nil {
t.Fatalf("unsafe drain configuration accepted: %+v", config)
}
}
}