From a8804ea02df7dfcfcc18cc32001c66596e868cc0 Mon Sep 17 00:00:00 2001 From: ginuerzh Date: Sat, 12 Feb 2022 21:32:32 +0800 Subject: [PATCH] fix auth for webapi --- cmd/gost/api.yaml | 13 ------------- pkg/api/api.go | 36 ------------------------------------ pkg/api/server.go | 38 ++++++++++++++++++++++++++++++++++---- 3 files changed, 34 insertions(+), 53 deletions(-) delete mode 100644 cmd/gost/api.yaml diff --git a/cmd/gost/api.yaml b/cmd/gost/api.yaml deleted file mode 100644 index 986ad43..0000000 --- a/cmd/gost/api.yaml +++ /dev/null @@ -1,13 +0,0 @@ -api: - addr: :18080 - accesslog: true - pathPrefix: /api - auth: - username: gost - password: gost - auther: auther-0 -authers: -- name: auther-0 - auths: - - username: gost1 - password: gost1 diff --git a/pkg/api/api.go b/pkg/api/api.go index 9222186..5b7fcce 100644 --- a/pkg/api/api.go +++ b/pkg/api/api.go @@ -2,9 +2,6 @@ package api import ( "embed" - "net/http" - - "github.com/gin-gonic/gin" ) var ( @@ -12,39 +9,6 @@ var ( swaggerDoc embed.FS ) -func register(r *gin.RouterGroup) { - r.StaticFS("/docs", http.FS(swaggerDoc)) - - config := r.Group("/config") - { - config.GET("", getConfig) - - config.POST("/services", createService) - config.PUT("/services/:service", updateService) - config.DELETE("/services/:service", deleteService) - - config.POST("/chains", createChain) - config.PUT("/chains/:chain", updateChain) - config.DELETE("/chains/:chain", deleteChain) - - config.POST("/authers", createAuther) - config.PUT("/authers/:auther", updateAuther) - config.DELETE("/authers/:auther", deleteAuther) - - config.POST("/bypasses", createBypass) - config.PUT("/bypasses/:bypass", updateBypass) - config.DELETE("/bypasses/:bypass", deleteBypass) - - config.POST("/resolvers", createResolver) - config.PUT("/resolvers/:resolver", updateResolver) - config.DELETE("/resolvers/:resolver", deleteResolver) - - config.POST("/hosts", createHosts) - config.PUT("/hosts/:hosts", updateHosts) - config.DELETE("/hosts/:hosts", deleteHosts) - } -} - type Response struct { Code int `json:"code,omitempty"` Msg string `json:"msg,omitempty"` diff --git a/pkg/api/server.go b/pkg/api/server.go index 9cec619..35a05a5 100644 --- a/pkg/api/server.go +++ b/pkg/api/server.go @@ -65,15 +65,17 @@ func NewServer(addr string, opts ...Option) (*Server, error) { if options.accessLog { r.Use(mwLogger()) } - if options.auther != nil { - r.Use(mwBasicAuth(options.auther)) - } router := r.Group("") if options.pathPrefix != "" { router = router.Group(options.pathPrefix) } - register(router) + + router.StaticFS("/docs", http.FS(swaggerDoc)) + + config := router.Group("/config") + config.Use(mwBasicAuth(options.auther)) + registerConfig(config) return &Server{ s: &http.Server{ @@ -94,3 +96,31 @@ func (s *Server) Addr() net.Addr { func (s *Server) Close() error { return s.s.Close() } + +func registerConfig(config *gin.RouterGroup) { + config.GET("", getConfig) + + config.POST("/services", createService) + config.PUT("/services/:service", updateService) + config.DELETE("/services/:service", deleteService) + + config.POST("/chains", createChain) + config.PUT("/chains/:chain", updateChain) + config.DELETE("/chains/:chain", deleteChain) + + config.POST("/authers", createAuther) + config.PUT("/authers/:auther", updateAuther) + config.DELETE("/authers/:auther", deleteAuther) + + config.POST("/bypasses", createBypass) + config.PUT("/bypasses/:bypass", updateBypass) + config.DELETE("/bypasses/:bypass", deleteBypass) + + config.POST("/resolvers", createResolver) + config.PUT("/resolvers/:resolver", updateResolver) + config.DELETE("/resolvers/:resolver", deleteResolver) + + config.POST("/hosts", createHosts) + config.PUT("/hosts/:hosts", updateHosts) + config.DELETE("/hosts/:hosts", deleteHosts) +}