From e21fc3b423fd1c1a7f25d721fdf1e6b7972c43ee Mon Sep 17 00:00:00 2001 From: Xuhang Cao Date: Fri, 5 Jul 2024 20:07:06 -0400 Subject: [PATCH 1/2] added versioning and plurality Signed-off-by: Xuhang Cao --- api/agent/server.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/api/agent/server.go b/api/agent/server.go index 3d647f3f..67fe169a 100644 --- a/api/agent/server.go +++ b/api/agent/server.go @@ -431,7 +431,7 @@ func (s *Server) verificationMiddleware(next http.Handler) http.Handler { cors(w, r) return } - + userInfo := s.Authenticator.AuthenticateRequest(r) err := s.Authorizer.AuthorizeRequest(r, userInfo) @@ -574,17 +574,26 @@ func (s *Server) GetRouter() http.Handler { // SPIRE server healthcheck apiRtr.HandleFunc("/api/debugserver", s.debugServer) apiRtr.HandleFunc("/api/healthcheck", s.healthcheck) + apiRtr.HandleFunc("/api/v1/debugserver", s.debugServer) + apiRtr.HandleFunc("/api/v1/healthcheck", s.healthcheck) // Agents apiRtr.HandleFunc("/api/agent/list", s.agentList) apiRtr.HandleFunc("/api/agent/ban", s.agentBan) apiRtr.HandleFunc("/api/agent/delete", s.agentDelete) apiRtr.HandleFunc("/api/agent/createjointoken", s.agentCreateJoinToken) + apiRtr.HandleFunc("/api/v1/agents/list", s.agentList) + apiRtr.HandleFunc("/api/v1/agents/ban", s.agentBan) + apiRtr.HandleFunc("/api/v1/agents/delete", s.agentDelete) + apiRtr.HandleFunc("/api/v1/agents/createjointoken", s.agentCreateJoinToken) // Entries apiRtr.HandleFunc("/api/entry/list", s.entryList) apiRtr.HandleFunc("/api/entry/create", s.entryCreate) apiRtr.HandleFunc("/api/entry/delete", s.entryDelete) + apiRtr.HandleFunc("/api/v1/entries/list", s.entryList) + apiRtr.HandleFunc("/api/v1/entries/create", s.entryCreate) + apiRtr.HandleFunc("/api/v1/entries/delete", s.entryDelete) // Tornjak specific apiRtr.HandleFunc("/api/tornjak/serverinfo", s.tornjakGetServerInfo) @@ -636,7 +645,7 @@ func (s *Server) HandleRequests() { // TODO: replace with workerGroup for thread safety errChannel := make(chan error, 2) - + serverConfig := s.TornjakConfig.Server if serverConfig.HTTPConfig == nil { err = fmt.Errorf("HTTP Config error: no port configured") From eda344f3aa6b0014ea2c4a0a4763c35791574d18 Mon Sep 17 00:00:00 2001 From: Xuhang Cao Date: Tue, 9 Jul 2024 14:20:39 -0400 Subject: [PATCH 2/2] updates with spire and adjustments Signed-off-by: Xuhang Cao --- api/agent/server.go | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/api/agent/server.go b/api/agent/server.go index 67fe169a..15f74e97 100644 --- a/api/agent/server.go +++ b/api/agent/server.go @@ -574,26 +574,28 @@ func (s *Server) GetRouter() http.Handler { // SPIRE server healthcheck apiRtr.HandleFunc("/api/debugserver", s.debugServer) apiRtr.HandleFunc("/api/healthcheck", s.healthcheck) - apiRtr.HandleFunc("/api/v1/debugserver", s.debugServer) - apiRtr.HandleFunc("/api/v1/healthcheck", s.healthcheck) // Agents apiRtr.HandleFunc("/api/agent/list", s.agentList) apiRtr.HandleFunc("/api/agent/ban", s.agentBan) apiRtr.HandleFunc("/api/agent/delete", s.agentDelete) apiRtr.HandleFunc("/api/agent/createjointoken", s.agentCreateJoinToken) - apiRtr.HandleFunc("/api/v1/agents/list", s.agentList) - apiRtr.HandleFunc("/api/v1/agents/ban", s.agentBan) - apiRtr.HandleFunc("/api/v1/agents/delete", s.agentDelete) - apiRtr.HandleFunc("/api/v1/agents/createjointoken", s.agentCreateJoinToken) // Entries apiRtr.HandleFunc("/api/entry/list", s.entryList) apiRtr.HandleFunc("/api/entry/create", s.entryCreate) apiRtr.HandleFunc("/api/entry/delete", s.entryDelete) - apiRtr.HandleFunc("/api/v1/entries/list", s.entryList) - apiRtr.HandleFunc("/api/v1/entries/create", s.entryCreate) - apiRtr.HandleFunc("/api/v1/entries/delete", s.entryDelete) + + // Spire APIs with versioning + apiRtr.HandleFunc("/api/v1/spire/debugserver", s.debugServer) + apiRtr.HandleFunc("/api/v1/spire/healthcheck", s.healthcheck) + apiRtr.HandleFunc("/api/v1/spire/agents/list", s.agentList) + apiRtr.HandleFunc("/api/v1/spire/agents/ban", s.agentBan) + apiRtr.HandleFunc("/api/v1/spire/agents/delete", s.agentDelete) + apiRtr.HandleFunc("/api/v1/spire/agents/createjointoken", s.agentCreateJoinToken) + apiRtr.HandleFunc("/api/v1/spire/entries/list", s.entryList) + apiRtr.HandleFunc("/api/v1/spire/entries/create", s.entryCreate) + apiRtr.HandleFunc("/api/v1/spire/entries/delete", s.entryDelete) // Tornjak specific apiRtr.HandleFunc("/api/tornjak/serverinfo", s.tornjakGetServerInfo)