[FIX] ISSUE-007: Fix sessions endpoint redirect (301)

- Added route without trailing slash: sessions.GET("", ...)
- Kept route with slash for compatibility: sessions.GET("/", ...)
- This prevents Gin from redirecting /sessions to /sessions/
- Updated REAL_ISSUES_TODOLIST.json with fix status
This commit is contained in:
senke 2025-12-26 16:35:58 +01:00
parent ec202b2064
commit f8606c94c9
2 changed files with 10 additions and 7 deletions

View file

@ -283,10 +283,12 @@
"title": "Endpoint sessions redirige au lieu de retourner JSON",
"priority": "P2",
"priority_rank": 7,
"status": "open",
"status": "fixed",
"fixed_at": "2025-12-26T15:35:00Z",
"fix_description": "Ajout d'une route GET sans trailing slash (sessions.GET(\"\", ...)) en plus de la route avec slash pour éviter la redirection 301 de Gin",
"blocking": false,
"endpoint": "GET /api/v1/sessions",
"test_command": "curl -X GET 'http://localhost:8080/api/v1/sessions'",
"test_command": "curl -X GET 'http://localhost:8080/api/v1/sessions' -H 'Authorization: Bearer $TOKEN'",
"expected_result": "HTTP 200 avec liste des sessions OU HTTP 401 si authentification requise",
"actual_result": "HTTP 301 (Moved Permanently) vers /api/v1/sessions/ (avec trailing slash)",
"error_message": "Redirection au lieu de réponse JSON",
@ -294,11 +296,10 @@
"http_code": 301,
"user_impact": "L'endpoint redirige au lieu de retourner des données. Problème de configuration de route.",
"tested_at": "2025-12-26T15:18:42Z",
"root_cause": "Configuration de route incorrecte - trailing slash manquant ou en trop",
"fix_suggestion": "Vérifier la configuration des routes dans le routeur pour gérer correctement les trailing slashes",
"root_cause": "Configuration de route incorrecte - Gin redirige automatiquement /sessions vers /sessions/ si seule la route avec slash est définie",
"fix_suggestion": "Ajouter les deux routes (avec et sans trailing slash) pour compatibilité",
"files_to_check": [
"veza-backend-api/cmd/api/main.go",
"veza-backend-api/internal/router/router.go"
"veza-backend-api/internal/api/router.go"
],
"estimated_hours": 0.5
}

View file

@ -1251,7 +1251,9 @@ func (r *APIRouter) setupCoreProtectedRoutes(v1 *gin.RouterGroup) {
{
sessions.POST("/logout", sessionHandler.Logout())
sessions.POST("/logout-all", sessionHandler.LogoutAll())
sessions.GET("/", sessionHandler.GetSessions())
// ISSUE-007: Ajouter route sans trailing slash pour éviter redirection 301
sessions.GET("", sessionHandler.GetSessions())
sessions.GET("/", sessionHandler.GetSessions()) // Garder aussi avec slash pour compatibilité
sessions.DELETE("/:session_id", sessionHandler.RevokeSession())
sessions.GET("/stats", sessionHandler.GetSessionStats())
sessions.POST("/refresh", sessionHandler.RefreshSession())