mirror of
				https://github.com/TeaOSLab/EdgeAPI.git
				synced 2025-11-04 16:00:24 +08:00 
			
		
		
		
	源站支持客户端证书
This commit is contained in:
		@@ -87,7 +87,20 @@ func (this *OriginDAO) FindOriginName(tx *dbs.Tx, id int64) (string, error) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// CreateOrigin 创建源站
 | 
					// CreateOrigin 创建源站
 | 
				
			||||||
func (this *OriginDAO) CreateOrigin(tx *dbs.Tx, adminId int64, userId int64, name string, addrJSON string, description string, weight int32, isOn bool, connTimeout *shared.TimeDuration, readTimeout *shared.TimeDuration, idleTimeout *shared.TimeDuration, maxConns int32, maxIdleConns int32, domains []string) (originId int64, err error) {
 | 
					func (this *OriginDAO) CreateOrigin(tx *dbs.Tx,
 | 
				
			||||||
 | 
						adminId int64,
 | 
				
			||||||
 | 
						userId int64,
 | 
				
			||||||
 | 
						name string,
 | 
				
			||||||
 | 
						addrJSON string,
 | 
				
			||||||
 | 
						description string,
 | 
				
			||||||
 | 
						weight int32, isOn bool,
 | 
				
			||||||
 | 
						connTimeout *shared.TimeDuration,
 | 
				
			||||||
 | 
						readTimeout *shared.TimeDuration,
 | 
				
			||||||
 | 
						idleTimeout *shared.TimeDuration,
 | 
				
			||||||
 | 
						maxConns int32,
 | 
				
			||||||
 | 
						maxIdleConns int32,
 | 
				
			||||||
 | 
						certRef *sslconfigs.SSLCertRef,
 | 
				
			||||||
 | 
						domains []string) (originId int64, err error) {
 | 
				
			||||||
	op := NewOriginOperator()
 | 
						op := NewOriginOperator()
 | 
				
			||||||
	op.AdminId = adminId
 | 
						op.AdminId = adminId
 | 
				
			||||||
	op.UserId = userId
 | 
						op.UserId = userId
 | 
				
			||||||
@@ -133,6 +146,15 @@ func (this *OriginDAO) CreateOrigin(tx *dbs.Tx, adminId int64, userId int64, nam
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	op.Weight = weight
 | 
						op.Weight = weight
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// cert
 | 
				
			||||||
 | 
						if certRef != nil {
 | 
				
			||||||
 | 
							certRefJSON, err := json.Marshal(certRef)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return 0, err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							op.Cert = certRefJSON
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if len(domains) > 0 {
 | 
						if len(domains) > 0 {
 | 
				
			||||||
		domainsJSON, err := json.Marshal(domains)
 | 
							domainsJSON, err := json.Marshal(domains)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
@@ -152,7 +174,20 @@ func (this *OriginDAO) CreateOrigin(tx *dbs.Tx, adminId int64, userId int64, nam
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// UpdateOrigin 修改源站
 | 
					// UpdateOrigin 修改源站
 | 
				
			||||||
func (this *OriginDAO) UpdateOrigin(tx *dbs.Tx, originId int64, name string, addrJSON string, description string, weight int32, isOn bool, connTimeout *shared.TimeDuration, readTimeout *shared.TimeDuration, idleTimeout *shared.TimeDuration, maxConns int32, maxIdleConns int32, domains []string) error {
 | 
					func (this *OriginDAO) UpdateOrigin(tx *dbs.Tx,
 | 
				
			||||||
 | 
						originId int64,
 | 
				
			||||||
 | 
						name string,
 | 
				
			||||||
 | 
						addrJSON string,
 | 
				
			||||||
 | 
						description string,
 | 
				
			||||||
 | 
						weight int32,
 | 
				
			||||||
 | 
						isOn bool,
 | 
				
			||||||
 | 
						connTimeout *shared.TimeDuration,
 | 
				
			||||||
 | 
						readTimeout *shared.TimeDuration,
 | 
				
			||||||
 | 
						idleTimeout *shared.TimeDuration,
 | 
				
			||||||
 | 
						maxConns int32,
 | 
				
			||||||
 | 
						maxIdleConns int32,
 | 
				
			||||||
 | 
						certRef *sslconfigs.SSLCertRef,
 | 
				
			||||||
 | 
						domains []string) error {
 | 
				
			||||||
	if originId <= 0 {
 | 
						if originId <= 0 {
 | 
				
			||||||
		return errors.New("invalid originId")
 | 
							return errors.New("invalid originId")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -201,6 +236,17 @@ func (this *OriginDAO) UpdateOrigin(tx *dbs.Tx, originId int64, name string, add
 | 
				
			|||||||
	op.IsOn = isOn
 | 
						op.IsOn = isOn
 | 
				
			||||||
	op.Version = dbs.SQL("version+1")
 | 
						op.Version = dbs.SQL("version+1")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// cert
 | 
				
			||||||
 | 
						if certRef != nil {
 | 
				
			||||||
 | 
							certRefJSON, err := json.Marshal(certRef)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							op.Cert = certRefJSON
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							op.Cert = dbs.SQL("NULL")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if len(domains) > 0 {
 | 
						if len(domains) > 0 {
 | 
				
			||||||
		domainsJSON, err := json.Marshal(domains)
 | 
							domainsJSON, err := json.Marshal(domains)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,6 +7,7 @@ import (
 | 
				
			|||||||
	"github.com/TeaOSLab/EdgeAPI/internal/db/models"
 | 
						"github.com/TeaOSLab/EdgeAPI/internal/db/models"
 | 
				
			||||||
	"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
 | 
						"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
 | 
				
			||||||
	"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared"
 | 
						"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared"
 | 
				
			||||||
 | 
						"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/sslconfigs"
 | 
				
			||||||
	"github.com/iwind/TeaGo/maps"
 | 
						"github.com/iwind/TeaGo/maps"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -58,7 +59,20 @@ func (this *OriginService) CreateOrigin(ctx context.Context, req *pb.CreateOrigi
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	originId, err := models.SharedOriginDAO.CreateOrigin(tx, adminId, userId, req.Name, string(addrMap.AsJSON()), req.Description, req.Weight, req.IsOn, connTimeout, readTimeout, idleTimeout, req.MaxConns, req.MaxIdleConns, req.Domains)
 | 
						// cert
 | 
				
			||||||
 | 
						var certRef *sslconfigs.SSLCertRef
 | 
				
			||||||
 | 
						if len(req.CertRefJSON) > 0 {
 | 
				
			||||||
 | 
							certRef = &sslconfigs.SSLCertRef{}
 | 
				
			||||||
 | 
							err = json.Unmarshal(req.CertRefJSON, certRef)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return nil, err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if certRef.CertId <= 0 {
 | 
				
			||||||
 | 
								certRef = nil
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						originId, err := models.SharedOriginDAO.CreateOrigin(tx, adminId, userId, req.Name, string(addrMap.AsJSON()), req.Description, req.Weight, req.IsOn, connTimeout, readTimeout, idleTimeout, req.MaxConns, req.MaxIdleConns, certRef, req.Domains)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -112,7 +126,20 @@ func (this *OriginService) UpdateOrigin(ctx context.Context, req *pb.UpdateOrigi
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	err = models.SharedOriginDAO.UpdateOrigin(tx, req.OriginId, req.Name, string(addrMap.AsJSON()), req.Description, req.Weight, req.IsOn, connTimeout, readTimeout, idleTimeout, req.MaxConns, req.MaxIdleConns, req.Domains)
 | 
						// cert
 | 
				
			||||||
 | 
						var certRef *sslconfigs.SSLCertRef
 | 
				
			||||||
 | 
						if len(req.CertRefJSON) > 0 {
 | 
				
			||||||
 | 
							certRef = &sslconfigs.SSLCertRef{}
 | 
				
			||||||
 | 
							err = json.Unmarshal(req.CertRefJSON, certRef)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return nil, err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if certRef.CertId <= 0 {
 | 
				
			||||||
 | 
								certRef = nil
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						err = models.SharedOriginDAO.UpdateOrigin(tx, req.OriginId, req.Name, string(addrMap.AsJSON()), req.Description, req.Weight, req.IsOn, connTimeout, readTimeout, idleTimeout, req.MaxConns, req.MaxIdleConns, certRef, req.Domains)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user