From 850768d5743a2728a1ee7f7932ccab47613de1e7 Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Wed, 4 May 2022 20:32:34 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B7=AF=E7=94=B1=E8=A7=84=E5=88=99=E5=8F=AF?= =?UTF-8?q?=E4=BB=A5=E5=8D=95=E7=8B=AC=E8=AE=BE=E7=BD=AEUAM=EF=BC=88?= =?UTF-8?q?=E4=BB=85=E4=BC=81=E4=B8=9A=E7=89=88=E5=8F=AF=E7=94=A8=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/db/models/http_web_dao.go | 40 +++++++++++++++++++ internal/db/models/http_web_model.go | 2 + .../services/service_http_web_community.go | 20 ++++++++++ 3 files changed, 62 insertions(+) create mode 100644 internal/rpc/services/service_http_web_community.go diff --git a/internal/db/models/http_web_dao.go b/internal/db/models/http_web_dao.go index c8dda0e1..32766a86 100644 --- a/internal/db/models/http_web_dao.go +++ b/internal/db/models/http_web_dao.go @@ -3,6 +3,7 @@ package models import ( "encoding/json" "errors" + teaconst "github.com/TeaOSLab/EdgeAPI/internal/const" "github.com/TeaOSLab/EdgeAPI/internal/utils" "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs" "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/firewallconfigs" @@ -446,6 +447,16 @@ func (this *HTTPWebDAO) ComposeWebConfig(tx *dbs.Tx, webId int64, cacheMap *util } } + // UAM + if teaconst.IsPlus && IsNotNull(web.Uam) { + var uamConfig = &serverconfigs.UAMConfig{} + err = json.Unmarshal(web.Uam, uamConfig) + if err != nil { + return nil, err + } + config.UAM = uamConfig + } + if cacheMap != nil { cacheMap.Put(cacheKey, config) } @@ -1168,6 +1179,35 @@ func (this *HTTPWebDAO) FindWebRequestScripts(tx *dbs.Tx, webId int64) (*serverc return config, nil } +// UpdateWebUAM 开启UAM +func (this *HTTPWebDAO) UpdateWebUAM(tx *dbs.Tx, webId int64, uamConfig *serverconfigs.UAMConfig) error { + if uamConfig == nil { + return nil + } + configJSON, err := json.Marshal(uamConfig) + if err != nil { + return err + } + + err = this.Query(tx). + Pk(webId). + Set("uam", configJSON). + UpdateQuickly() + if err != nil { + return err + } + + return this.NotifyUpdate(tx, webId) +} + +// FindWebUAM 查找服务的UAM配置 +func (this *HTTPWebDAO) FindWebUAM(tx *dbs.Tx, webId int64) ([]byte, error) { + return this.Query(tx). + Pk(webId). + Result("uam"). + FindJSONCol() +} + // NotifyUpdate 通知更新 func (this *HTTPWebDAO) NotifyUpdate(tx *dbs.Tx, webId int64) error { // server diff --git a/internal/db/models/http_web_model.go b/internal/db/models/http_web_model.go index aff2c221..2211ddde 100644 --- a/internal/db/models/http_web_model.go +++ b/internal/db/models/http_web_model.go @@ -37,6 +37,7 @@ type HTTPWeb struct { MergeSlashes uint8 `field:"mergeSlashes"` // 是否合并路径中的斜杠 RequestLimit dbs.JSON `field:"requestLimit"` // 请求限制 RequestScripts dbs.JSON `field:"requestScripts"` // 请求脚本 + Uam dbs.JSON `field:"uam"` // UAM设置 } type HTTPWebOperator struct { @@ -73,6 +74,7 @@ type HTTPWebOperator struct { MergeSlashes interface{} // 是否合并路径中的斜杠 RequestLimit interface{} // 请求限制 RequestScripts interface{} // 请求脚本 + Uam interface{} // UAM设置 } func NewHTTPWebOperator() *HTTPWebOperator { diff --git a/internal/rpc/services/service_http_web_community.go b/internal/rpc/services/service_http_web_community.go new file mode 100644 index 00000000..0f5f039d --- /dev/null +++ b/internal/rpc/services/service_http_web_community.go @@ -0,0 +1,20 @@ +// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn . +//go:build !plus +// +build !plus + +package services + +import ( + "context" + "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" +) + +// UpdateHTTPWebUAM 修改UAM设置 +func (this *HTTPWebService) UpdateHTTPWebUAM(ctx context.Context, req *pb.UpdateHTTPWebUAMRequest) (*pb.RPCSuccess, error) { + return this.Success() +} + +// FindHTTPWebUAM 查找UAM设置 +func (this *HTTPWebService) FindHTTPWebUAM(ctx context.Context, req *pb.FindHTTPWebUAMRequest) (*pb.FindHTTPWebUAMResponse, error) { + return &pb.FindHTTPWebUAMResponse{UamJSON: nil}, nil +}