fix: enable encrypted swarm requests

This commit is contained in:
gongzhiyong
2026-05-28 16:58:27 +08:00
parent 7f9f70b1dc
commit d2f7ab7333
6 changed files with 153 additions and 9 deletions
+1 -1
View File
@@ -61,7 +61,7 @@ func SetApiRouter(router *gin.Engine) {
apiRouter.POST("/waffo/webhook", controller.WaffoWebhook)
apiRouter.GET("/agnet/callbacks/swarm-events/schema", controller.AgnetGetSwarmEventCallbackSchema)
apiRouter.POST("/agnet/callbacks/swarm-events", controller.AgnetReceiveSwarmEventCallback)
apiRouter.POST("/swarms", middleware.UserAuth(), controller.AgnetCreateUserSwarm)
apiRouter.POST("/swarms", middleware.UserOrV2DeviceAuth(), controller.AgnetCreateUserSwarm)
//apiRouter.POST("/waffo-pancake/webhook", controller.WaffoPancakeWebhook)
// Universal secure verification routes
+19
View File
@@ -1,9 +1,12 @@
package router
import (
"net/http"
"net/http/httptest"
"testing"
"github.com/gin-gonic/gin"
"github.com/heicode/manager/middleware"
"github.com/stretchr/testify/require"
)
@@ -13,3 +16,19 @@ func TestSetApiRouterDoesNotRegisterDuplicateRoutes(t *testing.T) {
SetApiRouter(gin.New())
})
}
func TestSwarmRouteUsesV2DeviceAuth(t *testing.T) {
gin.SetMode(gin.TestMode)
engine := gin.New()
SetApiRouter(engine)
req := httptest.NewRequest(http.MethodPost, "/api/swarms", nil)
req.Header.Set("Content-Encoding", middleware.V2ContentEncoding)
rec := httptest.NewRecorder()
engine.ServeHTTP(rec, req)
require.Equal(t, http.StatusUnauthorized, rec.Code)
require.Equal(t, middleware.V2AuthErrorEphPubkeyMissing, rec.Header().Get(middleware.HeaderAuthError))
require.NotEmpty(t, rec.Header().Get(middleware.HeaderServerTime))
}