|
@@ -19,7 +19,7 @@ import (
|
|
type WebForwardingService interface {
|
|
type WebForwardingService interface {
|
|
GetWebForwarding(ctx context.Context, req v1.GetForwardingRequest) (v1.WebForwardingDataRequest, error)
|
|
GetWebForwarding(ctx context.Context, req v1.GetForwardingRequest) (v1.WebForwardingDataRequest, error)
|
|
GetWebForwardingWafWebAllIps(ctx context.Context, req v1.GetForwardingRequest) ([]v1.WebForwardingDataRequest, error)
|
|
GetWebForwardingWafWebAllIps(ctx context.Context, req v1.GetForwardingRequest) ([]v1.WebForwardingDataRequest, error)
|
|
- AddWebForwarding(ctx context.Context, req *v1.WebForwardingRequest) error
|
|
|
|
|
|
+ AddWebForwarding(ctx context.Context, req *v1.WebForwardingRequest) (int, error)
|
|
EditWebForwarding(ctx context.Context, req *v1.WebForwardingRequest) error
|
|
EditWebForwarding(ctx context.Context, req *v1.WebForwardingRequest) error
|
|
DeleteWebForwarding(ctx context.Context, req v1.DeleteWebForwardingRequest) error
|
|
DeleteWebForwarding(ctx context.Context, req v1.DeleteWebForwardingRequest) error
|
|
}
|
|
}
|
|
@@ -341,10 +341,10 @@ func (s webForwardingService) FindDifferenceList(oldList, newList []v1.BackendLi
|
|
return added, removed
|
|
return added, removed
|
|
}
|
|
}
|
|
|
|
|
|
-func (s *webForwardingService) AddWebForwarding(ctx context.Context, req *v1.WebForwardingRequest) error {
|
|
|
|
|
|
+func (s *webForwardingService) AddWebForwarding(ctx context.Context, req *v1.WebForwardingRequest) (int, error) {
|
|
require, formData, err := s.prepareWafData(ctx, req)
|
|
require, formData, err := s.prepareWafData(ctx, req)
|
|
if err != nil {
|
|
if err != nil {
|
|
- return err
|
|
|
|
|
|
+ return 0, err
|
|
}
|
|
}
|
|
|
|
|
|
// 验证域名限制
|
|
// 验证域名限制
|
|
@@ -355,12 +355,12 @@ func (s *webForwardingService) AddWebForwarding(ctx context.Context, req *v1.Web
|
|
Uid: req.Uid,
|
|
Uid: req.Uid,
|
|
})
|
|
})
|
|
if err != nil {
|
|
if err != nil {
|
|
- return err
|
|
|
|
|
|
+ return 0, err
|
|
}
|
|
}
|
|
|
|
|
|
err = s.wafformatter.validateWafPortCount(ctx, require.HostId)
|
|
err = s.wafformatter.validateWafPortCount(ctx, require.HostId)
|
|
if err != nil {
|
|
if err != nil {
|
|
- return err
|
|
|
|
|
|
+ return 0, err
|
|
}
|
|
}
|
|
|
|
|
|
var protocol string
|
|
var protocol string
|
|
@@ -372,7 +372,7 @@ func (s *webForwardingService) AddWebForwarding(ctx context.Context, req *v1.Web
|
|
// 验证端口重复
|
|
// 验证端口重复
|
|
err = s.wafformatter.VerifyPort(ctx, protocol, int64(req.WebForwardingData.Id), req.WebForwardingData.Port, int64(require.HostId), req.WebForwardingData.Domain)
|
|
err = s.wafformatter.VerifyPort(ctx, protocol, int64(req.WebForwardingData.Id), req.WebForwardingData.Port, int64(require.HostId), req.WebForwardingData.Domain)
|
|
if err != nil {
|
|
if err != nil {
|
|
- return err
|
|
|
|
|
|
+ return 0, err
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -387,13 +387,13 @@ func (s *webForwardingService) AddWebForwarding(ctx context.Context, req *v1.Web
|
|
Description: req.WebForwardingData.Comment,
|
|
Description: req.WebForwardingData.Comment,
|
|
})
|
|
})
|
|
if err != nil {
|
|
if err != nil {
|
|
- return err
|
|
|
|
|
|
+ return 0, err
|
|
}
|
|
}
|
|
req.WebForwardingData.SslCertId = sslCertId
|
|
req.WebForwardingData.SslCertId = sslCertId
|
|
req.WebForwardingData.SslPolicyId = formData.HttpsJSON.SslPolicyRef.SslPolicyId
|
|
req.WebForwardingData.SslPolicyId = formData.HttpsJSON.SslPolicyRef.SslPolicyId
|
|
err = s.sslCert.EditSslPolicy(ctx, formData.HttpsJSON.SslPolicyRef.SslPolicyId, []int64{sslCertId}, "add")
|
|
err = s.sslCert.EditSslPolicy(ctx, formData.HttpsJSON.SslPolicyRef.SslPolicyId, []int64{sslCertId}, "add")
|
|
if err != nil {
|
|
if err != nil {
|
|
- return err
|
|
|
|
|
|
+ return 0, err
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -401,12 +401,12 @@ func (s *webForwardingService) AddWebForwarding(ctx context.Context, req *v1.Web
|
|
// 添加网站
|
|
// 添加网站
|
|
formDataSend, err := s.BulidFormData(ctx, formData)
|
|
formDataSend, err := s.BulidFormData(ctx, formData)
|
|
if err != nil {
|
|
if err != nil {
|
|
- return err
|
|
|
|
|
|
+ return 0, err
|
|
}
|
|
}
|
|
|
|
|
|
webId, err := s.cdn.CreateWebsite(ctx, formDataSend)
|
|
webId, err := s.cdn.CreateWebsite(ctx, formDataSend)
|
|
if err != nil {
|
|
if err != nil {
|
|
- return err
|
|
|
|
|
|
+ return 0, err
|
|
}
|
|
}
|
|
backendList := make(map[string]string)
|
|
backendList := make(map[string]string)
|
|
for _, k := range req.WebForwardingData.BackendList {
|
|
for _, k := range req.WebForwardingData.BackendList {
|
|
@@ -417,10 +417,10 @@ func (s *webForwardingService) AddWebForwarding(ctx context.Context, req *v1.Web
|
|
// 开启websocket
|
|
// 开启websocket
|
|
websocketId, err := s.websocket.AddWebsocket(ctx)
|
|
websocketId, err := s.websocket.AddWebsocket(ctx)
|
|
if err != nil {
|
|
if err != nil {
|
|
- return err
|
|
|
|
|
|
+ return 0, err
|
|
}
|
|
}
|
|
if err := s.websocket.EnableOrDisable(ctx, webId, websocketId, true, false); err != nil {
|
|
if err := s.websocket.EnableOrDisable(ctx, webId, websocketId, true, false); err != nil {
|
|
- return err
|
|
|
|
|
|
+ return 0, err
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -441,7 +441,7 @@ func (s *webForwardingService) AddWebForwarding(ctx context.Context, req *v1.Web
|
|
Comment: req.WebForwardingData.Comment,
|
|
Comment: req.WebForwardingData.Comment,
|
|
})
|
|
})
|
|
if err != nil {
|
|
if err != nil {
|
|
- return err
|
|
|
|
|
|
+ return 0, err
|
|
}
|
|
}
|
|
cdnOriginIds[v.Addr] = id
|
|
cdnOriginIds[v.Addr] = id
|
|
}
|
|
}
|
|
@@ -450,7 +450,7 @@ func (s *webForwardingService) AddWebForwarding(ctx context.Context, req *v1.Web
|
|
for _, v := range cdnOriginIds {
|
|
for _, v := range cdnOriginIds {
|
|
err = s.cdn.AddServerOrigin(ctx, webId, v)
|
|
err = s.cdn.AddServerOrigin(ctx, webId, v)
|
|
if err != nil {
|
|
if err != nil {
|
|
- return err
|
|
|
|
|
|
+ return 0, err
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -462,28 +462,28 @@ func (s *webForwardingService) AddWebForwarding(ctx context.Context, req *v1.Web
|
|
Version: 1,
|
|
Version: 1,
|
|
})
|
|
})
|
|
if err != nil {
|
|
if err != nil {
|
|
- return err
|
|
|
|
|
|
+ return 0, err
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
// 开启访问日志
|
|
// 开启访问日志
|
|
err = s.EditLog(ctx, webId)
|
|
err = s.EditLog(ctx, webId)
|
|
if err != nil {
|
|
if err != nil {
|
|
- return err
|
|
|
|
|
|
+ return 0, err
|
|
}
|
|
}
|
|
|
|
|
|
// 开启CC
|
|
// 开启CC
|
|
if req.WebForwardingData.CcConfig.IsOn {
|
|
if req.WebForwardingData.CcConfig.IsOn {
|
|
err = s.cc.EditCcConfig(ctx, webId, req.WebForwardingData.CcConfig)
|
|
err = s.cc.EditCcConfig(ctx, webId, req.WebForwardingData.CcConfig)
|
|
if err != nil {
|
|
if err != nil {
|
|
- return err
|
|
|
|
|
|
+ return 0, err
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
// 开启waf防火墙
|
|
// 开启waf防火墙
|
|
if err = s.ccIpList.AddCcIpListPolicy(ctx, webId, int64(require.GroupId)); err != nil {
|
|
if err = s.ccIpList.AddCcIpListPolicy(ctx, webId, int64(require.GroupId)); err != nil {
|
|
- return err
|
|
|
|
|
|
+ return 0, err
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -492,25 +492,25 @@ func (s *webForwardingService) AddWebForwarding(ctx context.Context, req *v1.Web
|
|
|
|
|
|
id, err := s.webForwardingRepository.AddWebForwarding(ctx, webModel)
|
|
id, err := s.webForwardingRepository.AddWebForwarding(ctx, webModel)
|
|
if err != nil {
|
|
if err != nil {
|
|
- return err
|
|
|
|
|
|
+ return 0, err
|
|
}
|
|
}
|
|
webRuleModel := s.buildWebRuleModel(&req.WebForwardingData, require, id, cdnOriginIds)
|
|
webRuleModel := s.buildWebRuleModel(&req.WebForwardingData, require, id, cdnOriginIds)
|
|
if _, err = s.webForwardingRepository.AddWebForwardingIps(ctx, *webRuleModel); err != nil {
|
|
if _, err = s.webForwardingRepository.AddWebForwardingIps(ctx, *webRuleModel); err != nil {
|
|
- return err
|
|
|
|
|
|
+ return 0, err
|
|
}
|
|
}
|
|
|
|
|
|
if req.WebForwardingData.Domain != "" {
|
|
if req.WebForwardingData.Domain != "" {
|
|
// 异步任务:将域名添加到白名单
|
|
// 异步任务:将域名添加到白名单
|
|
doMain, err := s.wafformatter.ConvertToWildcardDomain(ctx, req.WebForwardingData.Domain)
|
|
doMain, err := s.wafformatter.ConvertToWildcardDomain(ctx, req.WebForwardingData.Domain)
|
|
if err != nil {
|
|
if err != nil {
|
|
- return err
|
|
|
|
|
|
+ return 0, err
|
|
}
|
|
}
|
|
if len(require.GatewayIps) == 0 {
|
|
if len(require.GatewayIps) == 0 {
|
|
- return fmt.Errorf("网关组不存在")
|
|
|
|
|
|
+ return 0, fmt.Errorf("网关组不存在")
|
|
}
|
|
}
|
|
firstIp, err := s.gatewayIp.GetGatewayipByHostIdFirst(ctx, int64(require.HostId), int64(require.Uid))
|
|
firstIp, err := s.gatewayIp.GetGatewayipByHostIdFirst(ctx, int64(require.HostId), int64(require.Uid))
|
|
if err != nil {
|
|
if err != nil {
|
|
- return err
|
|
|
|
|
|
+ return 0, err
|
|
}
|
|
}
|
|
go s.wafformatter.PublishDomainWhitelistTask(doMain, firstIp, "add")
|
|
go s.wafformatter.PublishDomainWhitelistTask(doMain, firstIp, "add")
|
|
|
|
|
|
@@ -522,14 +522,14 @@ func (s *webForwardingService) AddWebForwarding(ctx context.Context, req *v1.Web
|
|
for _, v := range req.WebForwardingData.BackendList {
|
|
for _, v := range req.WebForwardingData.BackendList {
|
|
ip, _, err := net.SplitHostPort(v.Addr)
|
|
ip, _, err := net.SplitHostPort(v.Addr)
|
|
if err != nil {
|
|
if err != nil {
|
|
- return err
|
|
|
|
|
|
+ return 0, err
|
|
}
|
|
}
|
|
ips = append(ips, ip)
|
|
ips = append(ips, ip)
|
|
}
|
|
}
|
|
go s.wafformatter.PublishIpWhitelistTask(ips, "add", "", "white")
|
|
go s.wafformatter.PublishIpWhitelistTask(ips, "add", "", "white")
|
|
}
|
|
}
|
|
|
|
|
|
- return nil
|
|
|
|
|
|
+ return id, nil
|
|
}
|
|
}
|
|
|
|
|
|
func (s *webForwardingService) EditWebForwarding(ctx context.Context, req *v1.WebForwardingRequest) error {
|
|
func (s *webForwardingService) EditWebForwarding(ctx context.Context, req *v1.WebForwardingRequest) error {
|