diff --git a/Sense/server/app/admin/router/sys_router.go b/Sense/server/app/admin/router/sys_router.go index ffab703..71ae8b7 100644 --- a/Sense/server/app/admin/router/sys_router.go +++ b/Sense/server/app/admin/router/sys_router.go @@ -80,6 +80,11 @@ func sysCheckRoleRouterInit(r *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddle func registerBaseRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { api := apis.SysMenu{} api2 := apis.SysDept{} + configAPI := apis.SysConfig{} + // The GoAdmin login shell reads frontend-only branding before a user is + // authenticated. Keep this single read route public without registering the + // disabled system-configuration CRUD and write routes. + v1.GET("/app-config", configAPI.Get2SysApp) v1auth := v1.Group("").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) { v1auth.GET("/roleMenuTreeselect/:roleId", api.GetMenuTreeSelect) diff --git a/Sense/server/app/admin/router/sys_router_test.go b/Sense/server/app/admin/router/sys_router_test.go new file mode 100644 index 0000000..d882d47 --- /dev/null +++ b/Sense/server/app/admin/router/sys_router_test.go @@ -0,0 +1,37 @@ +package router + +import ( + "testing" + + "github.com/gin-gonic/gin" + jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" +) + +func TestRegisterBaseRouterExposesOnlyFrontendAppConfig(t *testing.T) { + gin.SetMode(gin.TestMode) + engine := gin.New() + registerBaseRouter(engine.Group("/api/v1"), &jwt.GinJWTMiddleware{}) + + routes := make(map[string]struct{}) + for _, route := range engine.Routes() { + routes[route.Method+" "+route.Path] = struct{}{} + } + + if _, ok := routes["GET /api/v1/app-config"]; !ok { + t.Fatal("anonymous frontend app-config route is not registered") + } + for _, disabled := range []string{ + "GET /api/v1/config", + "POST /api/v1/config", + "GET /api/v1/config/:id", + "PUT /api/v1/config/:id", + "DELETE /api/v1/config", + "GET /api/v1/configKey/:configKey", + "GET /api/v1/set-config", + "PUT /api/v1/set-config", + } { + if _, ok := routes[disabled]; ok { + t.Fatalf("disabled system-configuration route was registered: %s", disabled) + } + } +}