diff --git a/internal/web/actions/default/clusters/cluster/settings/index.go b/internal/web/actions/default/clusters/cluster/settings/index.go index b6a06a7f..fa62b2b0 100644 --- a/internal/web/actions/default/clusters/cluster/settings/index.go +++ b/internal/web/actions/default/clusters/cluster/settings/index.go @@ -89,6 +89,19 @@ func (this *IndexAction) RunGet(params struct { } } + // DNS信息 + var fullDomainName = "" + if len(cluster.DnsName) > 0 && cluster.DnsDomainId > 0 { + domainResp, err := this.RPC().DNSDomainRPC().FindBasicDNSDomain(this.AdminContext(), &pb.FindBasicDNSDomainRequest{DnsDomainId: cluster.DnsDomainId}) + if err != nil { + this.ErrorPage(err) + return + } + if domainResp.DnsDomain != nil { + fullDomainName = cluster.DnsName + "." + domainResp.DnsDomain.Name + } + } + this.Data["cluster"] = maps.Map{ "id": cluster.Id, "name": cluster.Name, @@ -100,6 +113,7 @@ func (this *IndexAction) RunGet(params struct { "autoRemoteStart": cluster.AutoRemoteStart, "autoInstallNftables": cluster.AutoInstallNftables, "sshParams": sshParams, + "domainName": fullDomainName, } // 默认值 diff --git a/internal/web/actions/default/servers/groups/group/settings/headers/index.go b/internal/web/actions/default/servers/groups/group/settings/headers/index.go index 8319ea96..49e75ee4 100644 --- a/internal/web/actions/default/servers/groups/group/settings/headers/index.go +++ b/internal/web/actions/default/servers/groups/group/settings/headers/index.go @@ -43,7 +43,7 @@ func (this *IndexAction) RunGet(params struct { this.ErrorPage(err) return } - headerPolicyId := createHeaderPolicyResp.HeaderPolicyId + headerPolicyId := createHeaderPolicyResp.HttpHeaderPolicyId ref := &shared.HTTPHeaderPolicyRef{ IsPrior: false, IsOn: true, @@ -70,7 +70,7 @@ func (this *IndexAction) RunGet(params struct { this.ErrorPage(err) return } - headerPolicyId := createHeaderPolicyResp.HeaderPolicyId + headerPolicyId := createHeaderPolicyResp.HttpHeaderPolicyId ref := &shared.HTTPHeaderPolicyRef{ IsPrior: false, IsOn: true, diff --git a/internal/web/actions/default/servers/server/settings/headers/createDeletePopup.go b/internal/web/actions/default/servers/server/settings/headers/createDeletePopup.go index c7b9f9ca..bc029778 100644 --- a/internal/web/actions/default/servers/server/settings/headers/createDeletePopup.go +++ b/internal/web/actions/default/servers/server/settings/headers/createDeletePopup.go @@ -40,13 +40,13 @@ func (this *CreateDeletePopupAction) RunPost(params struct { Field("name", params.Name). Require("名称不能为空") - policyConfigResp, err := this.RPC().HTTPHeaderPolicyRPC().FindEnabledHTTPHeaderPolicyConfig(this.AdminContext(), &pb.FindEnabledHTTPHeaderPolicyConfigRequest{HeaderPolicyId: params.HeaderPolicyId}) + policyConfigResp, err := this.RPC().HTTPHeaderPolicyRPC().FindEnabledHTTPHeaderPolicyConfig(this.AdminContext(), &pb.FindEnabledHTTPHeaderPolicyConfigRequest{HttpHeaderPolicyId: params.HeaderPolicyId}) if err != nil { this.ErrorPage(err) return } policyConfig := &shared.HTTPHeaderPolicy{} - err = json.Unmarshal(policyConfigResp.HeaderPolicyJSON, policyConfig) + err = json.Unmarshal(policyConfigResp.HttpHeaderPolicyJSON, policyConfig) if err != nil { this.ErrorPage(err) return @@ -55,8 +55,8 @@ func (this *CreateDeletePopupAction) RunPost(params struct { deleteHeaders := policyConfig.DeleteHeaders deleteHeaders = append(deleteHeaders, params.Name) _, err = this.RPC().HTTPHeaderPolicyRPC().UpdateHTTPHeaderPolicyDeletingHeaders(this.AdminContext(), &pb.UpdateHTTPHeaderPolicyDeletingHeadersRequest{ - HeaderPolicyId: params.HeaderPolicyId, - HeaderNames: deleteHeaders, + HttpHeaderPolicyId: params.HeaderPolicyId, + HeaderNames: deleteHeaders, }) if err != nil { this.ErrorPage(err) diff --git a/internal/web/actions/default/servers/server/settings/headers/createSetPopup.go b/internal/web/actions/default/servers/server/settings/headers/createSetPopup.go index f826eae4..9934da0d 100644 --- a/internal/web/actions/default/servers/server/settings/headers/createSetPopup.go +++ b/internal/web/actions/default/servers/server/settings/headers/createSetPopup.go @@ -52,13 +52,13 @@ func (this *CreateSetPopupAction) RunPost(params struct { Field("name", params.Name). Require("请输入Header名称") - configResp, err := this.RPC().HTTPHeaderPolicyRPC().FindEnabledHTTPHeaderPolicyConfig(this.AdminContext(), &pb.FindEnabledHTTPHeaderPolicyConfigRequest{HeaderPolicyId: params.HeaderPolicyId}) + configResp, err := this.RPC().HTTPHeaderPolicyRPC().FindEnabledHTTPHeaderPolicyConfig(this.AdminContext(), &pb.FindEnabledHTTPHeaderPolicyConfigRequest{HttpHeaderPolicyId: params.HeaderPolicyId}) if err != nil { this.ErrorPage(err) return } policyConfig := &shared.HTTPHeaderPolicy{} - err = json.Unmarshal(configResp.HeaderPolicyJSON, policyConfig) + err = json.Unmarshal(configResp.HttpHeaderPolicyJSON, policyConfig) if err != nil { this.ErrorPage(err) return @@ -135,8 +135,8 @@ func (this *CreateSetPopupAction) RunPost(params struct { } _, err = this.RPC().HTTPHeaderPolicyRPC().UpdateHTTPHeaderPolicySettingHeaders(this.AdminContext(), &pb.UpdateHTTPHeaderPolicySettingHeadersRequest{ - HeaderPolicyId: params.HeaderPolicyId, - HeadersJSON: refsJSON, + HttpHeaderPolicyId: params.HeaderPolicyId, + HeadersJSON: refsJSON, }) if err != nil { this.ErrorPage(err) diff --git a/internal/web/actions/default/servers/server/settings/headers/delete.go b/internal/web/actions/default/servers/server/settings/headers/delete.go index 5063f6a1..9c428983 100644 --- a/internal/web/actions/default/servers/server/settings/headers/delete.go +++ b/internal/web/actions/default/servers/server/settings/headers/delete.go @@ -21,14 +21,14 @@ func (this *DeleteAction) RunPost(params struct { defer this.CreateLog(oplogs.LevelInfo, "删除请求Header,HeaderPolicyId:%d, HeaderId:%d", params.HeaderPolicyId, params.HeaderId) policyConfigResp, err := this.RPC().HTTPHeaderPolicyRPC().FindEnabledHTTPHeaderPolicyConfig(this.AdminContext(), &pb.FindEnabledHTTPHeaderPolicyConfigRequest{ - HeaderPolicyId: params.HeaderPolicyId, + HttpHeaderPolicyId: params.HeaderPolicyId, }) if err != nil { this.ErrorPage(err) return } policyConfig := &shared.HTTPHeaderPolicy{} - err = json.Unmarshal(policyConfigResp.HeaderPolicyJSON, policyConfig) + err = json.Unmarshal(policyConfigResp.HttpHeaderPolicyJSON, policyConfig) if err != nil { this.ErrorPage(err) return @@ -48,8 +48,8 @@ func (this *DeleteAction) RunPost(params struct { return } _, err = this.RPC().HTTPHeaderPolicyRPC().UpdateHTTPHeaderPolicySettingHeaders(this.AdminContext(), &pb.UpdateHTTPHeaderPolicySettingHeadersRequest{ - HeaderPolicyId: params.HeaderPolicyId, - HeadersJSON: resultJSON, + HttpHeaderPolicyId: params.HeaderPolicyId, + HeadersJSON: resultJSON, }) if err != nil { this.ErrorPage(err) diff --git a/internal/web/actions/default/servers/server/settings/headers/deleteDeletingHeader.go b/internal/web/actions/default/servers/server/settings/headers/deleteDeletingHeader.go index 36558577..8ed32793 100644 --- a/internal/web/actions/default/servers/server/settings/headers/deleteDeletingHeader.go +++ b/internal/web/actions/default/servers/server/settings/headers/deleteDeletingHeader.go @@ -19,12 +19,12 @@ func (this *DeleteDeletingHeaderAction) RunPost(params struct { // 日志 defer this.CreateLog(oplogs.LevelInfo, "删除需要删除的请求Header,HeaderPolicyId:%d, HeaderName:%s", params.HeaderPolicyId, params.HeaderName) - policyConfigResp, err := this.RPC().HTTPHeaderPolicyRPC().FindEnabledHTTPHeaderPolicyConfig(this.AdminContext(), &pb.FindEnabledHTTPHeaderPolicyConfigRequest{HeaderPolicyId: params.HeaderPolicyId}) + policyConfigResp, err := this.RPC().HTTPHeaderPolicyRPC().FindEnabledHTTPHeaderPolicyConfig(this.AdminContext(), &pb.FindEnabledHTTPHeaderPolicyConfigRequest{HttpHeaderPolicyId: params.HeaderPolicyId}) if err != nil { this.ErrorPage(err) return } - policyConfigJSON := policyConfigResp.HeaderPolicyJSON + policyConfigJSON := policyConfigResp.HttpHeaderPolicyJSON policyConfig := &shared.HTTPHeaderPolicy{} err = json.Unmarshal(policyConfigJSON, policyConfig) if err != nil { @@ -40,8 +40,8 @@ func (this *DeleteDeletingHeaderAction) RunPost(params struct { headerNames = append(headerNames, h) } _, err = this.RPC().HTTPHeaderPolicyRPC().UpdateHTTPHeaderPolicyDeletingHeaders(this.AdminContext(), &pb.UpdateHTTPHeaderPolicyDeletingHeadersRequest{ - HeaderPolicyId: params.HeaderPolicyId, - HeaderNames: headerNames, + HttpHeaderPolicyId: params.HeaderPolicyId, + HeaderNames: headerNames, }) if err != nil { this.ErrorPage(err) diff --git a/internal/web/actions/default/servers/server/settings/headers/index.go b/internal/web/actions/default/servers/server/settings/headers/index.go index 9fc4f8f3..f92eb8f3 100644 --- a/internal/web/actions/default/servers/server/settings/headers/index.go +++ b/internal/web/actions/default/servers/server/settings/headers/index.go @@ -47,7 +47,7 @@ func (this *IndexAction) RunGet(params struct { this.ErrorPage(err) return } - headerPolicyId := createHeaderPolicyResp.HeaderPolicyId + var headerPolicyId = createHeaderPolicyResp.HttpHeaderPolicyId ref := &shared.HTTPHeaderPolicyRef{ IsPrior: false, IsOn: true, @@ -74,7 +74,7 @@ func (this *IndexAction) RunGet(params struct { this.ErrorPage(err) return } - headerPolicyId := createHeaderPolicyResp.HeaderPolicyId + headerPolicyId := createHeaderPolicyResp.HttpHeaderPolicyId ref := &shared.HTTPHeaderPolicyRef{ IsPrior: false, IsOn: true, diff --git a/internal/web/actions/default/servers/server/settings/headers/init.go b/internal/web/actions/default/servers/server/settings/headers/init.go index 08153096..57adce04 100644 --- a/internal/web/actions/default/servers/server/settings/headers/init.go +++ b/internal/web/actions/default/servers/server/settings/headers/init.go @@ -19,6 +19,7 @@ func init() { GetPost("/createDeletePopup", new(CreateDeletePopupAction)). Post("/deleteDeletingHeader", new(DeleteDeletingHeaderAction)). Post("/delete", new(DeleteAction)). + GetPost("/updateCORSPopup", new(UpdateCORSPopupAction)). EndAll() }) } diff --git a/internal/web/actions/default/servers/server/settings/headers/updateCORSPopup.go b/internal/web/actions/default/servers/server/settings/headers/updateCORSPopup.go new file mode 100644 index 00000000..0ba1b6f5 --- /dev/null +++ b/internal/web/actions/default/servers/server/settings/headers/updateCORSPopup.go @@ -0,0 +1,75 @@ +// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn . + +package headers + +import ( + "encoding/json" + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" + "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared" + "github.com/iwind/TeaGo/actions" +) + +type UpdateCORSPopupAction struct { + actionutils.ParentAction +} + +func (this *UpdateCORSPopupAction) Init() { + this.Nav("", "", "") +} + +func (this *UpdateCORSPopupAction) RunGet(params struct { + HeaderPolicyId int64 +}) { + this.Data["headerPolicyId"] = params.HeaderPolicyId + + resp, err := this.RPC().HTTPHeaderPolicyRPC().FindEnabledHTTPHeaderPolicyConfig(this.AdminContext(), &pb.FindEnabledHTTPHeaderPolicyConfigRequest{HttpHeaderPolicyId: params.HeaderPolicyId}) + if err != nil { + this.ErrorPage(err) + return + } + var headerPolicyJSON = resp.HttpHeaderPolicyJSON + var headerPolicy = &shared.HTTPHeaderPolicy{} + if len(headerPolicyJSON) > 0 { + err = json.Unmarshal(headerPolicyJSON, headerPolicy) + if err != nil { + this.ErrorPage(err) + return + } + } + this.Data["cors"] = headerPolicy.CORS + + this.Show() +} + +func (this *UpdateCORSPopupAction) RunPost(params struct { + HeaderPolicyId int64 + CorsJSON []byte + + Must *actions.Must + CSRF *actionutils.CSRF +}) { + var config = &shared.HTTPCORSHeaderConfig{} + err := json.Unmarshal(params.CorsJSON, config) + if err != nil { + this.Fail("配置校验失败:" + err.Error()) + return + } + + err = config.Init() + if err != nil { + this.Fail("配置校验失败:" + err.Error()) + return + } + + _, err = this.RPC().HTTPHeaderPolicyRPC().UpdateHTTPHeaderPolicyCORS(this.AdminContext(), &pb.UpdateHTTPHeaderPolicyCORSRequest{ + HttpHeaderPolicyId: params.HeaderPolicyId, + CorsJSON: params.CorsJSON, + }) + if err != nil { + this.ErrorPage(err) + return + } + + this.Success() +} diff --git a/internal/web/actions/default/servers/server/settings/locations/headers/index.go b/internal/web/actions/default/servers/server/settings/locations/headers/index.go index 26eeabbc..1323dff8 100644 --- a/internal/web/actions/default/servers/server/settings/locations/headers/index.go +++ b/internal/web/actions/default/servers/server/settings/locations/headers/index.go @@ -36,7 +36,7 @@ func (this *IndexAction) RunGet(params struct { this.ErrorPage(err) return } - headerPolicyId := createHeaderPolicyResp.HeaderPolicyId + headerPolicyId := createHeaderPolicyResp.HttpHeaderPolicyId ref := &shared.HTTPHeaderPolicyRef{ IsPrior: false, IsOn: true, @@ -59,7 +59,7 @@ func (this *IndexAction) RunGet(params struct { this.ErrorPage(err) return } - headerPolicyId := createHeaderPolicyResp.HeaderPolicyId + headerPolicyId := createHeaderPolicyResp.HttpHeaderPolicyId ref := &shared.HTTPHeaderPolicyRef{ IsPrior: false, IsOn: true, diff --git a/web/public/js/components/server/http-cors-header-config-box.js b/web/public/js/components/server/http-cors-header-config-box.js new file mode 100644 index 00000000..cf96f8c0 --- /dev/null +++ b/web/public/js/components/server/http-cors-header-config-box.js @@ -0,0 +1,34 @@ +Vue.component("http-cors-header-config-box", { + props: ["value"], + data: function () { + let config = this.value + if (config == null) { + config = { + isOn: false, + allowMethods: [], + allowOrigin: "", + allowCredentials: false, + exposeHeaders: [], + maxAge: 0, + requestHeaders: [], + requestMethod: "" + } + } + + return { + config: config + } + }, + template: `
| 启用CORS自适应跨域 | +
+ |
+
暂时还没有Header。
| 操作 | -||
|---|---|---|
|
- {{header.name}}
-
-
- |
- {{header.value}} | -修改 删除 | -
|
+ {{header.name}}
+
+
+ |
+ {{header.value}} | +修改 删除 | +
这里可以设置需要从请求中删除的Header。
| 需要删除的Header | -- - - | +
| 需要删除的Header | ++ + + | +
将会覆盖已有的同名Header。
暂时还没有Header。
| 操作 | -||
|---|---|---|
|
- {{header.name}}
-
-
- |
- {{header.value}} | -修改 删除 | -
|
+ {{header.name}}
+
+
+ |
+ {{header.value}} | +修改 删除 | +
这里可以设置需要从响应中删除的Header。
| 需要删除的Header | -- - - | +
| 需要删除的Header | ++ + + | +
| CORS自适应跨域 | ++ 已启用未启用 [修改] + | +