删除所有插件实例配置里的无用字段

This commit is contained in:
chenjiekun
2022-06-13 11:57:41 +08:00
parent c55463d9fb
commit 37d67de7cd
22 changed files with 49 additions and 80 deletions

View File

@@ -14,7 +14,6 @@ var _ http_service.IFilter = (*Auth)(nil)
type Auth struct { type Auth struct {
*Driver *Driver
id string id string
name string
auths []auth.IAuth auths []auth.IAuth
} }

View File

@@ -4,8 +4,8 @@ import (
"fmt" "fmt"
"reflect" "reflect"
"github.com/eolinker/eosc"
"github.com/eolinker/apinto/auth" "github.com/eolinker/apinto/auth"
"github.com/eolinker/eosc"
) )
type Driver struct { type Driver struct {
@@ -62,7 +62,6 @@ func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.Require
au := &Auth{ au := &Auth{
Driver: d, Driver: d,
id: id, id: id,
name: name,
auths: list, auths: list,
} }

View File

@@ -11,7 +11,6 @@ import (
type CircuitBreaker struct { type CircuitBreaker struct {
*Driver *Driver
id string id string
name string
counter *circuitCount counter *circuitCount
conf *Config conf *Config
} }

View File

@@ -46,11 +46,10 @@ func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.Require
} }
cb := &CircuitBreaker{ cb := &CircuitBreaker{
d, Driver: d,
id, id: id,
name, counter: newCircuitCount(),
newCircuitCount(), conf: conf,
conf,
} }
return cb, nil return cb, nil

View File

@@ -11,15 +11,14 @@ import (
type CorsFilter struct { type CorsFilter struct {
*Driver *Driver
id string id string
name string responseType string
responseType string
allowCredentials bool allowCredentials bool
option optionHandler option optionHandler
originChecker *Checker originChecker *Checker
methodChecker *Checker methodChecker *Checker
headerChecker *Checker headerChecker *Checker
exposeChecker *Checker exposeChecker *Checker
} }
func (c *CorsFilter) DoFilter(ctx http_service.IHttpContext, next http_service.IChain) (err error) { func (c *CorsFilter) DoFilter(ctx http_service.IHttpContext, next http_service.IChain) (err error) {
@@ -54,7 +53,7 @@ func (c *CorsFilter) doOption(ctx http_service.IHttpContext) error {
return c.option(ctx) return c.option(ctx)
} }
func (c *CorsFilter) doNext(ctx http_service.IHttpContext) { func (c *CorsFilter) doNext(ctx http_service.IHttpContext) {
// 验证响应头部是否在expose-headers中 // 验证响应头部是否在expose-headers中
for key := range ctx.Response().Headers() { for key := range ctx.Response().Headers() {
if !c.exposeChecker.Check(key, true) { if !c.exposeChecker.Check(key, true) {
@@ -98,7 +97,7 @@ func (c *CorsFilter) doFilter(ctx http_service.IHttpContext) error {
if !c.allowCredentials { if !c.allowCredentials {
cookie := ctx.Request().Header().GetHeader("Cookie") cookie := ctx.Request().Header().GetHeader("Cookie")
if cookie != "" { if cookie != "" {
ctx.Proxy().Header().DelHeader("Cookie") ctx.Proxy().Header().DelHeader("Cookie")
} }
} }
return nil return nil
@@ -141,7 +140,7 @@ func (c *CorsFilter) CheckSkill(skill string) bool {
} }
// WriteHeader CORS响应告诉本服务的规则 // WriteHeader CORS响应告诉本服务的规则
func (c *CorsFilter) WriteHeader(ctx http_service.IHttpContext) { func (c *CorsFilter) WriteHeader(ctx http_service.IHttpContext) {
resp := ctx.Response() resp := ctx.Response()
c.writeHeader(resp, c.originChecker) c.writeHeader(resp, c.originChecker)
c.writeHeader(resp, c.headerChecker) c.writeHeader(resp, c.headerChecker)
@@ -149,7 +148,7 @@ func (c *CorsFilter) WriteHeader(ctx http_service.IHttpContext) {
c.writeHeader(resp, c.exposeChecker) c.writeHeader(resp, c.exposeChecker)
resp.SetHeader("Access-Control-Allow-Credentials", strconv.FormatBool(c.allowCredentials)) resp.SetHeader("Access-Control-Allow-Credentials", strconv.FormatBool(c.allowCredentials))
} }
func (c *CorsFilter) writeHeader(resp http_service.IResponse, h IHeader, ) { func (c *CorsFilter) writeHeader(resp http_service.IResponse, h IHeader) {
resp.SetHeader(h.GetKey(), h.GetOrigin()) resp.SetHeader(h.GetKey(), h.GetOrigin())
} }

View File

@@ -40,18 +40,15 @@ func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.Require
return nil, err return nil, err
} }
c := &CorsFilter{ c := &CorsFilter{
Driver: d, Driver: d,
id: id, id: id,
name: name, option: conf.genOptionHandler(),
option: conf.genOptionHandler(), originChecker: NewChecker(conf.AllowOrigins, "Access-Control-Allow-Origin"),
originChecker: NewChecker(conf.AllowOrigins, "Access-Control-Allow-Origin"), methodChecker: NewChecker(conf.AllowMethods, "Access-Control-Allow-Methods"),
methodChecker: NewChecker(conf.AllowMethods, "Access-Control-Allow-Methods"), headerChecker: NewChecker(conf.AllowHeaders, "Access-Control-Allow-Headers"),
headerChecker: NewChecker(conf.AllowHeaders, "Access-Control-Allow-Headers"), exposeChecker: NewChecker(conf.ExposeHeaders, "Access-Control-Expose-Headers"),
exposeChecker: NewChecker(conf.ExposeHeaders, "Access-Control-Expose-Headers"), responseType: conf.ResponseType,
responseType: conf.ResponseType,
allowCredentials: conf.AllowCredentials, allowCredentials: conf.AllowCredentials,
} }
return c, nil return c, nil
} }

View File

@@ -48,7 +48,6 @@ func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.Require
ep := &ExtraParams{ ep := &ExtraParams{
Driver: d, Driver: d,
id: id, id: id,
name: name,
params: conf.Params, params: conf.Params,
errorType: conf.ErrorType, errorType: conf.ErrorType,
} }

View File

@@ -14,7 +14,6 @@ var _ http_service.IFilter = (*ExtraParams)(nil)
type ExtraParams struct { type ExtraParams struct {
*Driver *Driver
id string id string
name string
params []*ExtraParam params []*ExtraParam
errorType string errorType string
} }

View File

@@ -13,7 +13,6 @@ type Driver struct {
configType reflect.Type configType reflect.Type
} }
func (d *Driver) Check(v interface{}, workers map[eosc.RequireId]interface{}) error { func (d *Driver) Check(v interface{}, workers map[eosc.RequireId]interface{}) error {
_, err := d.check(v) _, err := d.check(v)
return err return err
@@ -43,8 +42,7 @@ func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.Require
c := &Gzip{ c := &Gzip{
Driver: d, Driver: d,
id: id, id: id,
name: name, conf: conf,
conf: conf,
} }
return c, nil return c, nil
} }

View File

@@ -11,7 +11,6 @@ import (
type Gzip struct { type Gzip struct {
*Driver *Driver
id string id string
name string
conf *Config conf *Config
} }
@@ -20,7 +19,7 @@ func (g *Gzip) DoFilter(ctx http_service.IHttpContext, next http_service.IChain)
if next != nil { if next != nil {
err = next.DoChain(ctx) err = next.DoChain(ctx)
} }
if err == nil && strings.Contains(head,"gzip") { if err == nil && strings.Contains(head, "gzip") {
err = g.doCompress(ctx) err = g.doCompress(ctx)
} }
return return
@@ -37,7 +36,7 @@ func (g *Gzip) doCompress(ctx http_service.IHttpContext) error {
contentType := resp.GetHeader("Content-Type") contentType := resp.GetHeader("Content-Type")
if len(g.conf.Types) == 0 { if len(g.conf.Types) == 0 {
flag = true flag = true
}else { } else {
for _, t := range g.conf.Types { for _, t := range g.conf.Types {
if strings.Contains(contentType, t) { if strings.Contains(contentType, t) {
flag = true flag = true
@@ -53,7 +52,7 @@ func (g *Gzip) doCompress(ctx http_service.IHttpContext) error {
resp.SetBody(res) resp.SetBody(res)
resp.SetHeader("Content-Encoding", "gzip") resp.SetHeader("Content-Encoding", "gzip")
if g.conf.Vary { if g.conf.Vary {
resp.SetHeader("Vary","Accept-Encoding") resp.SetHeader("Vary", "Accept-Encoding")
} }
} }
return nil return nil
@@ -104,4 +103,3 @@ func (g *Gzip) Stop() error {
func (g *Gzip) CheckSkill(skill string) bool { func (g *Gzip) CheckSkill(skill string) bool {
return http_service.FilterSkillName == skill return http_service.FilterSkillName == skill
} }

View File

@@ -42,14 +42,10 @@ func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.Require
return nil, err return nil, err
} }
h := &IPHandler{ h := &IPHandler{
Driver: d, Driver: d,
id: id, id: id,
name: name, filter: conf.genFilter(),
filter: conf.genFilter(),
responseType: conf.ResponseType, responseType: conf.ResponseType,
} }
return h, nil return h, nil
} }

View File

@@ -8,16 +8,15 @@ import (
type IPHandler struct { type IPHandler struct {
*Driver *Driver
id string id string
name string
responseType string responseType string
filter IPFilter filter IPFilter
} }
func (I *IPHandler) doRestriction(ctx http_service.IHttpContext) error { func (I *IPHandler) doRestriction(ctx http_service.IHttpContext) error {
realIP := ctx.Request().ReadIP() realIP := ctx.Request().ReadIP()
if I.filter != nil { if I.filter != nil {
ok, err := I.filter(realIP) ok, err := I.filter(realIP)
if !ok { if !ok {
return err return err
} }

View File

@@ -49,7 +49,6 @@ func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.Require
ep := &ParamsTransformer{ ep := &ParamsTransformer{
Driver: d, Driver: d,
id: id, id: id,
name: name,
params: conf.Params, params: conf.Params,
remove: conf.Remove, remove: conf.Remove,
errorType: conf.ErrorType, errorType: conf.ErrorType,

View File

@@ -14,7 +14,6 @@ var _ http_service.IFilter = (*ParamsTransformer)(nil)
type ParamsTransformer struct { type ParamsTransformer struct {
*Driver *Driver
id string id string
name string
params []*TransParam params []*TransParam
remove bool remove bool
errorType string errorType string

View File

@@ -50,7 +50,6 @@ func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.Require
pw := &ProxyRewrite{ pw := &ProxyRewrite{
Driver: d, Driver: d,
id: id, id: id,
name: name,
scheme: conf.Scheme, scheme: conf.Scheme,
uri: conf.URI, uri: conf.URI,
regexURI: conf.RegexURI, regexURI: conf.RegexURI,

View File

@@ -13,7 +13,6 @@ var _ http_service.IFilter = (*ProxyRewrite)(nil)
type ProxyRewrite struct { type ProxyRewrite struct {
*Driver *Driver
id string id string
name string
scheme string scheme string
uri string uri string
regexURI []string regexURI []string

View File

@@ -38,12 +38,11 @@ func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.Require
return nil, err return nil, err
} }
l := &RateLimiting{ l := &RateLimiting{
Driver: d, Driver: d,
id: id, id: id,
name: name, rateInfo: CreateRateInfo(conf),
rateInfo: CreateRateInfo(conf),
hideClientHeader: conf.HideClientHeader, hideClientHeader: conf.HideClientHeader,
responseType: conf.ResponseType, responseType: conf.ResponseType,
} }
return l, nil return l, nil
} }

View File

@@ -18,14 +18,11 @@ const (
type RateLimiting struct { type RateLimiting struct {
*Driver *Driver
id string id string
name string
rateInfo *rateInfo rateInfo *rateInfo
hideClientHeader bool hideClientHeader bool
responseType string responseType string
} }
func (r *RateLimiting) doLimit() (bool, string, int) { func (r *RateLimiting) doLimit() (bool, string, int) {
info := r.rateInfo info := r.rateInfo
if info == nil { if info == nil {
@@ -145,6 +142,6 @@ func (r *RateLimiting) addRateHeader(ctx http_service.IHttpContext, rateType str
} }
resp := ctx.Response() resp := ctx.Response()
resp.SetHeader(fmt.Sprintf("X-RateLimit-Limit-%s", rateType), strconv.FormatInt(rate.limitCount, 10)) resp.SetHeader(fmt.Sprintf("X-RateLimit-Limit-%s", rateType), strconv.FormatInt(rate.limitCount, 10))
resp.SetHeader(fmt.Sprintf("X-RateLimit-Remaining-%s", rateType), strconv.FormatInt(rate.limitCount- rate.requestCount, 10)) resp.SetHeader(fmt.Sprintf("X-RateLimit-Remaining-%s", rateType), strconv.FormatInt(rate.limitCount-rate.requestCount, 10))
return return
} }

View File

@@ -1,8 +1,8 @@
package response_rewrite package response_rewrite
import ( import (
"github.com/eolinker/eosc"
"github.com/eolinker/apinto/utils" "github.com/eolinker/apinto/utils"
"github.com/eolinker/eosc"
"reflect" "reflect"
) )
@@ -55,13 +55,12 @@ func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.Require
} }
r := &ResponseRewrite{ r := &ResponseRewrite{
d, Driver: d,
id, id: id,
name, statusCode: conf.StatusCode,
conf.StatusCode, body: conf.Body,
conf.Body, headers: conf.Headers,
conf.Headers, match: conf.Match,
conf.Match,
} }
return r, nil return r, nil

View File

@@ -3,15 +3,14 @@ package response_rewrite
import ( import (
"strconv" "strconv"
"github.com/eolinker/apinto/utils"
"github.com/eolinker/eosc" "github.com/eolinker/eosc"
http_service "github.com/eolinker/eosc/http-service" http_service "github.com/eolinker/eosc/http-service"
"github.com/eolinker/apinto/utils"
) )
type ResponseRewrite struct { type ResponseRewrite struct {
*Driver *Driver
id string id string
name string
statusCode int statusCode int
body string body string
headers map[string]string headers map[string]string

View File

@@ -42,7 +42,6 @@ func (d *Driver) Create(id, name string, v interface{}, workers map[eosc.Require
rw := &Rewrite{ rw := &Rewrite{
Driver: d, Driver: d,
id: id, id: id,
name: name,
path: conf.ReWriteUrl, path: conf.ReWriteUrl,
} }

View File

@@ -6,9 +6,9 @@ import (
"github.com/eolinker/apinto/checker" "github.com/eolinker/apinto/checker"
"github.com/eolinker/apinto/service"
"github.com/eolinker/eosc" "github.com/eolinker/eosc"
http_service "github.com/eolinker/eosc/http-service" http_service "github.com/eolinker/eosc/http-service"
"github.com/eolinker/apinto/service"
) )
var _ http_service.IFilter = (*Rewrite)(nil) var _ http_service.IFilter = (*Rewrite)(nil)
@@ -16,7 +16,6 @@ var _ http_service.IFilter = (*Rewrite)(nil)
type Rewrite struct { type Rewrite struct {
*Driver *Driver
id string id string
name string
path string path string
} }