fix auth for webapi

This commit is contained in:
ginuerzh 2022-02-12 21:32:32 +08:00
parent f2d806886a
commit a8804ea02d
3 changed files with 34 additions and 53 deletions

View File

@ -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

View File

@ -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"`

View File

@ -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)
}