From 5fb78f97dc865fc4698243da5c20031087928f90 Mon Sep 17 00:00:00 2001 From: Ambition <918632536@qq.com> Date: Fri, 28 Jun 2024 11:20:22 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E7=A7=81=E6=9C=89?= =?UTF-8?q?=E5=8C=96=E7=89=88=E6=9C=AC=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bcs-services/bcs-bscp/pkg/cc/service.go | 17 ++++++++++------- .../bcs-bscp/pkg/iam/apigw/sync_docs.go | 15 ++++++++++++++- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/bcs-services/bcs-bscp/pkg/cc/service.go b/bcs-services/bcs-bscp/pkg/cc/service.go index 8af70611c0..4410d5a9e4 100644 --- a/bcs-services/bcs-bscp/pkg/cc/service.go +++ b/bcs-services/bcs-bscp/pkg/cc/service.go @@ -73,13 +73,14 @@ type Setting interface { // ApiServerSetting defines api server used setting options. type ApiServerSetting struct { - Network Network `yaml:"network"` - Service Service `yaml:"service"` - Log LogOption `yaml:"log"` - Repo Repository `yaml:"repository"` - BKNotice BKNotice `yaml:"bkNotice"` - Esb Esb `yaml:"esb"` - FeatureFlags FeatureFlags `yaml:"featureFlags"` + Network Network `yaml:"network"` + Service Service `yaml:"service"` + Log LogOption `yaml:"log"` + Repo Repository `yaml:"repository"` + BKNotice BKNotice `yaml:"bkNotice"` + Esb Esb `yaml:"esb"` + FeatureFlags FeatureFlags `yaml:"featureFlags"` + LoginAuth LoginAuthSettings `yaml:"loginAuth"` } // trySetFlagBindIP try set flag bind ip. @@ -135,6 +136,8 @@ type LoginAuthSettings struct { Provider string `yaml:"provider"` UseESB bool `yaml:"useEsb"` GWPubKey string `yaml:"gwPubkey"` + // PrivateVersion 是否是私有化版本 + PrivateVersion bool `yaml:"privateVersion"` } // trySetFlagBindIP try set flag bind ip. diff --git a/bcs-services/bcs-bscp/pkg/iam/apigw/sync_docs.go b/bcs-services/bcs-bscp/pkg/iam/apigw/sync_docs.go index 3942e2b099..43c1245d7a 100644 --- a/bcs-services/bcs-bscp/pkg/iam/apigw/sync_docs.go +++ b/bcs-services/bcs-bscp/pkg/iam/apigw/sync_docs.go @@ -28,7 +28,9 @@ const ( ) // ReleaseSwagger 导入swagge 文档 -func ReleaseSwagger(opt cc.ApiServerSetting, language, version string) error { // nolint +// nolint:funlen +func ReleaseSwagger(opt cc.ApiServerSetting, language, version string) error { + // 获取需要导入的文档 swaggerData, err := docs.Assets.ReadFile("swagger/bkapigw.swagger.json") if err != nil { @@ -53,6 +55,17 @@ func ReleaseSwagger(opt cc.ApiServerSetting, language, version string) error { / return fmt.Errorf("create or update gateway failed, err: %s", syncApiResp.Message) } + if opt.LoginAuth.PrivateVersion { + result, errK := gw.GetApigwPublicKey(syncApiResp.Data.Name) + if errK != nil { + return errK + } + if result.Code != 0 && result.Data.PublicKey == "" { + return fmt.Errorf("get the gateway public key failed, err: %s", result.Message) + } + opt.LoginAuth.GWPubKey = result.Data.PublicKey + } + // 同步环境 syncStageResp, err := gw.SyncStage(syncApiResp.Data.Name, &SyncStageReq{ Name: env,