Просмотр исходного кода

Refactor WebAPI handlers and update authentication methods

- Updated the root endpoint handler to log request method and path, and changed the response message.
- Enhanced authentication for presence and buddy list endpoints to support flexible authentication, allowing aimsid-based auth for specific routes.
ukozi 9 месяцев назад
Родитель
Сommit
ec740f37da
2 измененных файлов с 11 добавлено и 4 удалено
  1. 2 2
      server/webapi/handler.go
  2. 9 2
      server/webapi/server.go

+ 2 - 2
server/webapi/handler.go

@@ -54,6 +54,6 @@ type Handler struct {
 }
 
 func (h Handler) GetHelloWorldHandler(w http.ResponseWriter, r *http.Request) {
-	h.Logger.Info("got a Hello World request!")
-	_, _ = fmt.Fprintln(w, "Hello ukozi!")
+	h.Logger.Info("got a request to the root endpoint", "method", r.Method, "path", r.URL.Path)
+	_, _ = fmt.Fprintf(w, "WebAPI Server Running\n")
 }

+ 9 - 2
server/webapi/server.go

@@ -137,8 +137,14 @@ func NewServer(listeners []string, logger *slog.Logger, handler Handler, apiKeyV
 			authMiddleware.CORSMiddleware(
 				http.HandlerFunc(eventsHandler.FetchEvents))))
 
+		// Add temp buddy - uses aimsid for auth
+		mux.Handle("GET /aim/addTempBuddy", authMiddleware.AuthenticateFlexible(
+			authMiddleware.CORSMiddleware(
+				http.HandlerFunc(buddyListHandler.AddTempBuddy))))
+
 		// Presence and buddy list
-		mux.Handle("GET /presence/get", authMiddleware.Authenticate(
+		// GetPresence supports aimsid-based auth, so we use flexible auth
+		mux.Handle("GET /presence/get", authMiddleware.AuthenticateFlexible(
 			authMiddleware.CORSMiddleware(
 				http.HandlerFunc(presenceHandler.GetPresence))))
 
@@ -157,7 +163,8 @@ func NewServer(listeners []string, logger *slog.Logger, handler Handler, apiKeyV
 				http.HandlerFunc(messagingHandler.SetTyping))))
 
 		// Phase 2: Presence management endpoints
-		mux.Handle("GET /presence/setState", authMiddleware.Authenticate(
+		// SetState only requires aimsid, no k parameter needed
+		mux.Handle("GET /presence/setState", authMiddleware.AuthenticateFlexible(
 			authMiddleware.CORSMiddleware(
 				http.HandlerFunc(presenceHandler.SetState))))