mirror of
https://github.com/eolinker/apinto
synced 2025-10-19 15:14:32 +08:00
删除所有插件实例配置里的无用字段
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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
|
||||||
}
|
}
|
||||||
|
@@ -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
|
||||||
|
@@ -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())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -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,
|
||||||
}
|
}
|
||||||
|
@@ -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
|
||||||
}
|
}
|
||||||
|
@@ -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
|
||||||
}
|
}
|
||||||
|
@@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -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
|
||||||
}
|
}
|
||||||
|
@@ -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,
|
||||||
|
@@ -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
|
||||||
|
@@ -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,
|
||||||
|
@@ -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
|
||||||
|
@@ -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
|
||||||
}
|
}
|
||||||
|
@@ -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
|
||||||
}
|
}
|
||||||
|
@@ -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
|
||||||
|
@@ -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
|
||||||
|
@@ -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,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user