mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-06 18:10:25 +08:00
优化证书数量很多时的页面加载速度
This commit is contained in:
@@ -43,9 +43,9 @@ func (this *APINode) DecodeHTTPS(tx *dbs.Tx, cacheMap *utils.CacheMap) (*serverc
|
|||||||
}
|
}
|
||||||
|
|
||||||
if config.SSLPolicyRef != nil {
|
if config.SSLPolicyRef != nil {
|
||||||
policyId := config.SSLPolicyRef.SSLPolicyId
|
var policyId = config.SSLPolicyRef.SSLPolicyId
|
||||||
if policyId > 0 {
|
if policyId > 0 {
|
||||||
sslPolicy, err := SharedSSLPolicyDAO.ComposePolicyConfig(tx, policyId, cacheMap)
|
sslPolicy, err := SharedSSLPolicyDAO.ComposePolicyConfig(tx, policyId, false, cacheMap)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -143,7 +143,7 @@ func (this *APINode) DecodeRestHTTPS(tx *dbs.Tx, cacheMap *utils.CacheMap) (*ser
|
|||||||
if config.SSLPolicyRef != nil {
|
if config.SSLPolicyRef != nil {
|
||||||
policyId := config.SSLPolicyRef.SSLPolicyId
|
policyId := config.SSLPolicyRef.SSLPolicyId
|
||||||
if policyId > 0 {
|
if policyId > 0 {
|
||||||
sslPolicy, err := SharedSSLPolicyDAO.ComposePolicyConfig(tx, policyId, cacheMap)
|
sslPolicy, err := SharedSSLPolicyDAO.ComposePolicyConfig(tx, policyId, false, cacheMap)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -978,7 +978,7 @@ func (this *NodeDAO) ComposeNodeConfig(tx *dbs.Tx, nodeId int64, cacheMap *utils
|
|||||||
}
|
}
|
||||||
|
|
||||||
for _, server := range servers {
|
for _, server := range servers {
|
||||||
serverConfig, err := SharedServerDAO.ComposeServerConfig(tx, server, cacheMap, true, false)
|
serverConfig, err := SharedServerDAO.ComposeServerConfig(tx, server, false, cacheMap, true, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -403,7 +403,7 @@ func (this *OriginDAO) ComposeOriginConfig(tx *dbs.Tx, originId int64, cacheMap
|
|||||||
}
|
}
|
||||||
config.CertRef = ref
|
config.CertRef = ref
|
||||||
if ref.CertId > 0 {
|
if ref.CertId > 0 {
|
||||||
certConfig, err := SharedSSLCertDAO.ComposeCertConfig(tx, ref.CertId, cacheMap)
|
certConfig, err := SharedSSLCertDAO.ComposeCertConfig(tx, ref.CertId, false, cacheMap)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1001,7 +1001,7 @@ func (this *ServerDAO) FindServerNodeFilters(tx *dbs.Tx, serverId int64) (isOk b
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ComposeServerConfigWithServerId 构造服务的Config
|
// ComposeServerConfigWithServerId 构造服务的Config
|
||||||
func (this *ServerDAO) ComposeServerConfigWithServerId(tx *dbs.Tx, serverId int64, forNode bool) (*serverconfigs.ServerConfig, error) {
|
func (this *ServerDAO) ComposeServerConfigWithServerId(tx *dbs.Tx, serverId int64, ignoreCertData bool, forNode bool) (*serverconfigs.ServerConfig, error) {
|
||||||
server, err := this.FindEnabledServer(tx, serverId)
|
server, err := this.FindEnabledServer(tx, serverId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -1009,12 +1009,12 @@ func (this *ServerDAO) ComposeServerConfigWithServerId(tx *dbs.Tx, serverId int6
|
|||||||
if server == nil {
|
if server == nil {
|
||||||
return nil, ErrNotFound
|
return nil, ErrNotFound
|
||||||
}
|
}
|
||||||
return this.ComposeServerConfig(tx, server, nil, forNode, false)
|
return this.ComposeServerConfig(tx, server, ignoreCertData, nil, forNode, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ComposeServerConfig 构造服务的Config
|
// ComposeServerConfig 构造服务的Config
|
||||||
// forNode 是否是节点请求
|
// forNode 是否是节点请求
|
||||||
func (this *ServerDAO) ComposeServerConfig(tx *dbs.Tx, server *Server, cacheMap *utils.CacheMap, forNode bool, forList bool) (*serverconfigs.ServerConfig, error) {
|
func (this *ServerDAO) ComposeServerConfig(tx *dbs.Tx, server *Server, ignoreCertData bool, cacheMap *utils.CacheMap, forNode bool, forList bool) (*serverconfigs.ServerConfig, error) {
|
||||||
if server == nil {
|
if server == nil {
|
||||||
return nil, ErrNotFound
|
return nil, ErrNotFound
|
||||||
}
|
}
|
||||||
@@ -1111,7 +1111,7 @@ func (this *ServerDAO) ComposeServerConfig(tx *dbs.Tx, server *Server, cacheMap
|
|||||||
|
|
||||||
// SSL
|
// SSL
|
||||||
if httpsConfig.SSLPolicyRef != nil && httpsConfig.SSLPolicyRef.SSLPolicyId > 0 {
|
if httpsConfig.SSLPolicyRef != nil && httpsConfig.SSLPolicyRef.SSLPolicyId > 0 {
|
||||||
sslPolicyConfig, err := SharedSSLPolicyDAO.ComposePolicyConfig(tx, httpsConfig.SSLPolicyRef.SSLPolicyId, cacheMap)
|
sslPolicyConfig, err := SharedSSLPolicyDAO.ComposePolicyConfig(tx, httpsConfig.SSLPolicyRef.SSLPolicyId, ignoreCertData, cacheMap)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -1143,7 +1143,7 @@ func (this *ServerDAO) ComposeServerConfig(tx *dbs.Tx, server *Server, cacheMap
|
|||||||
|
|
||||||
// SSL
|
// SSL
|
||||||
if tlsConfig.SSLPolicyRef != nil {
|
if tlsConfig.SSLPolicyRef != nil {
|
||||||
sslPolicyConfig, err := SharedSSLPolicyDAO.ComposePolicyConfig(tx, tlsConfig.SSLPolicyRef.SSLPolicyId, cacheMap)
|
sslPolicyConfig, err := SharedSSLPolicyDAO.ComposePolicyConfig(tx, tlsConfig.SSLPolicyRef.SSLPolicyId, ignoreCertData, cacheMap)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -200,7 +200,8 @@ func (this *SSLCertDAO) UpdateCert(tx *dbs.Tx,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ComposeCertConfig 组合配置
|
// ComposeCertConfig 组合配置
|
||||||
func (this *SSLCertDAO) ComposeCertConfig(tx *dbs.Tx, certId int64, cacheMap *utils.CacheMap) (*sslconfigs.SSLCertConfig, error) {
|
// ignoreData 是否忽略证书数据,避免因为数据过大影响传输
|
||||||
|
func (this *SSLCertDAO) ComposeCertConfig(tx *dbs.Tx, certId int64, ignoreData bool, cacheMap *utils.CacheMap) (*sslconfigs.SSLCertConfig, error) {
|
||||||
if cacheMap == nil {
|
if cacheMap == nil {
|
||||||
cacheMap = utils.NewCacheMap()
|
cacheMap = utils.NewCacheMap()
|
||||||
}
|
}
|
||||||
@@ -218,15 +219,17 @@ func (this *SSLCertDAO) ComposeCertConfig(tx *dbs.Tx, certId int64, cacheMap *ut
|
|||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
config := &sslconfigs.SSLCertConfig{}
|
var config = &sslconfigs.SSLCertConfig{}
|
||||||
config.Id = int64(cert.Id)
|
config.Id = int64(cert.Id)
|
||||||
config.IsOn = cert.IsOn
|
config.IsOn = cert.IsOn
|
||||||
config.IsCA = cert.IsCA
|
config.IsCA = cert.IsCA
|
||||||
config.IsACME = cert.IsACME
|
config.IsACME = cert.IsACME
|
||||||
config.Name = cert.Name
|
config.Name = cert.Name
|
||||||
config.Description = cert.Description
|
config.Description = cert.Description
|
||||||
|
if !ignoreData {
|
||||||
config.CertData = cert.CertData
|
config.CertData = cert.CertData
|
||||||
config.KeyData = cert.KeyData
|
config.KeyData = cert.KeyData
|
||||||
|
}
|
||||||
config.ServerName = cert.ServerName
|
config.ServerName = cert.ServerName
|
||||||
config.TimeBeginAt = int64(cert.TimeBeginAt)
|
config.TimeBeginAt = int64(cert.TimeBeginAt)
|
||||||
config.TimeEndAt = int64(cert.TimeEndAt)
|
config.TimeEndAt = int64(cert.TimeEndAt)
|
||||||
@@ -239,7 +242,7 @@ func (this *SSLCertDAO) ComposeCertConfig(tx *dbs.Tx, certId int64, cacheMap *ut
|
|||||||
config.OCSPError = cert.OcspError
|
config.OCSPError = cert.OcspError
|
||||||
|
|
||||||
if IsNotNull(cert.DnsNames) {
|
if IsNotNull(cert.DnsNames) {
|
||||||
dnsNames := []string{}
|
var dnsNames = []string{}
|
||||||
err := json.Unmarshal(cert.DnsNames, &dnsNames)
|
err := json.Unmarshal(cert.DnsNames, &dnsNames)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -248,7 +251,7 @@ func (this *SSLCertDAO) ComposeCertConfig(tx *dbs.Tx, certId int64, cacheMap *ut
|
|||||||
}
|
}
|
||||||
|
|
||||||
if cert.CommonNames.IsNotNull() {
|
if cert.CommonNames.IsNotNull() {
|
||||||
commonNames := []string{}
|
var commonNames = []string{}
|
||||||
err := json.Unmarshal(cert.CommonNames, &commonNames)
|
err := json.Unmarshal(cert.CommonNames, &commonNames)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ func (this *SSLPolicyDAO) FindEnabledSSLPolicy(tx *dbs.Tx, id int64) (*SSLPolicy
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ComposePolicyConfig 组合配置
|
// ComposePolicyConfig 组合配置
|
||||||
func (this *SSLPolicyDAO) ComposePolicyConfig(tx *dbs.Tx, policyId int64, cacheMap *utils.CacheMap) (*sslconfigs.SSLPolicy, error) {
|
func (this *SSLPolicyDAO) ComposePolicyConfig(tx *dbs.Tx, policyId int64, ignoreData bool, cacheMap *utils.CacheMap) (*sslconfigs.SSLPolicy, error) {
|
||||||
if cacheMap == nil {
|
if cacheMap == nil {
|
||||||
cacheMap = utils.NewCacheMap()
|
cacheMap = utils.NewCacheMap()
|
||||||
}
|
}
|
||||||
@@ -95,7 +95,7 @@ func (this *SSLPolicyDAO) ComposePolicyConfig(tx *dbs.Tx, policyId int64, cacheM
|
|||||||
if policy == nil {
|
if policy == nil {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
config := &sslconfigs.SSLPolicy{}
|
var config = &sslconfigs.SSLPolicy{}
|
||||||
config.Id = int64(policy.Id)
|
config.Id = int64(policy.Id)
|
||||||
config.IsOn = policy.IsOn
|
config.IsOn = policy.IsOn
|
||||||
config.ClientAuthType = int(policy.ClientAuthType)
|
config.ClientAuthType = int(policy.ClientAuthType)
|
||||||
@@ -104,14 +104,14 @@ func (this *SSLPolicyDAO) ComposePolicyConfig(tx *dbs.Tx, policyId int64, cacheM
|
|||||||
|
|
||||||
// certs
|
// certs
|
||||||
if IsNotNull(policy.Certs) {
|
if IsNotNull(policy.Certs) {
|
||||||
refs := []*sslconfigs.SSLCertRef{}
|
var refs = []*sslconfigs.SSLCertRef{}
|
||||||
err = json.Unmarshal(policy.Certs, &refs)
|
err = json.Unmarshal(policy.Certs, &refs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if len(refs) > 0 {
|
if len(refs) > 0 {
|
||||||
for _, ref := range refs {
|
for _, ref := range refs {
|
||||||
certConfig, err := SharedSSLCertDAO.ComposeCertConfig(tx, ref.CertId, cacheMap)
|
certConfig, err := SharedSSLCertDAO.ComposeCertConfig(tx, ref.CertId, ignoreData, cacheMap)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -126,14 +126,14 @@ func (this *SSLPolicyDAO) ComposePolicyConfig(tx *dbs.Tx, policyId int64, cacheM
|
|||||||
|
|
||||||
// client CA certs
|
// client CA certs
|
||||||
if IsNotNull(policy.ClientCACerts) {
|
if IsNotNull(policy.ClientCACerts) {
|
||||||
refs := []*sslconfigs.SSLCertRef{}
|
var refs = []*sslconfigs.SSLCertRef{}
|
||||||
err = json.Unmarshal(policy.ClientCACerts, &refs)
|
err = json.Unmarshal(policy.ClientCACerts, &refs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if len(refs) > 0 {
|
if len(refs) > 0 {
|
||||||
for _, ref := range refs {
|
for _, ref := range refs {
|
||||||
certConfig, err := SharedSSLCertDAO.ComposeCertConfig(tx, ref.CertId, cacheMap)
|
certConfig, err := SharedSSLCertDAO.ComposeCertConfig(tx, ref.CertId, ignoreData, cacheMap)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -159,7 +159,7 @@ func (this *SSLPolicyDAO) ComposePolicyConfig(tx *dbs.Tx, policyId int64, cacheM
|
|||||||
|
|
||||||
// hsts
|
// hsts
|
||||||
if IsNotNull(policy.Hsts) {
|
if IsNotNull(policy.Hsts) {
|
||||||
hstsConfig := &sslconfigs.HSTSConfig{}
|
var hstsConfig = &sslconfigs.HSTSConfig{}
|
||||||
err = json.Unmarshal(policy.Hsts, hstsConfig)
|
err = json.Unmarshal(policy.Hsts, hstsConfig)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ func (this *UserNode) DecodeHTTPS(cacheMap *utils.CacheMap) (*serverconfigs.HTTP
|
|||||||
if config.SSLPolicyRef != nil {
|
if config.SSLPolicyRef != nil {
|
||||||
policyId := config.SSLPolicyRef.SSLPolicyId
|
policyId := config.SSLPolicyRef.SSLPolicyId
|
||||||
if policyId > 0 {
|
if policyId > 0 {
|
||||||
sslPolicy, err := SharedSSLPolicyDAO.ComposePolicyConfig(nil, policyId, cacheMap)
|
sslPolicy, err := SharedSSLPolicyDAO.ComposePolicyConfig(nil, policyId, false, cacheMap)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -846,7 +846,7 @@ func (this *ServerService) ListEnabledServersMatch(ctx context.Context, req *pb.
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 配置
|
// 配置
|
||||||
config, err := models.SharedServerDAO.ComposeServerConfig(tx, server, nil, false, true)
|
config, err := models.SharedServerDAO.ComposeServerConfig(tx, server, false, nil, false, true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -969,9 +969,9 @@ func (this *ServerService) FindEnabledServer(ctx context.Context, req *pb.FindEn
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 分组信息
|
// 分组信息
|
||||||
pbGroups := []*pb.ServerGroup{}
|
var pbGroups = []*pb.ServerGroup{}
|
||||||
if len(server.GroupIds) > 0 {
|
if len(server.GroupIds) > 0 {
|
||||||
groupIds := []int64{}
|
var groupIds = []int64{}
|
||||||
err = json.Unmarshal(server.GroupIds, &groupIds)
|
err = json.Unmarshal(server.GroupIds, &groupIds)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -1009,7 +1009,7 @@ func (this *ServerService) FindEnabledServer(ctx context.Context, req *pb.FindEn
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 配置
|
// 配置
|
||||||
config, err := models.SharedServerDAO.ComposeServerConfig(tx, server, nil, userId > 0, false)
|
config, err := models.SharedServerDAO.ComposeServerConfig(tx, server, req.IgnoreSSLCertData, nil, userId > 0, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -1069,7 +1069,7 @@ func (this *ServerService) FindEnabledServerConfig(ctx context.Context, req *pb.
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
config, err := models.SharedServerDAO.ComposeServerConfigWithServerId(tx, req.ServerId, false)
|
config, err := models.SharedServerDAO.ComposeServerConfigWithServerId(tx, req.ServerId, false, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -1520,7 +1520,7 @@ func (this *ServerService) ComposeAllUserServersConfig(ctx context.Context, req
|
|||||||
var configs = []*serverconfigs.ServerConfig{}
|
var configs = []*serverconfigs.ServerConfig{}
|
||||||
var cacheMap = utils.NewCacheMap()
|
var cacheMap = utils.NewCacheMap()
|
||||||
for _, server := range servers {
|
for _, server := range servers {
|
||||||
config, err := models.SharedServerDAO.ComposeServerConfig(tx, server, cacheMap, true, false)
|
config, err := models.SharedServerDAO.ComposeServerConfig(tx, server, false, cacheMap, true, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -2227,7 +2227,7 @@ func (this *ServerService) ComposeServerConfig(ctx context.Context, req *pb.Comp
|
|||||||
return &pb.ComposeServerConfigResponse{ServerConfigJSON: nil}, nil
|
return &pb.ComposeServerConfigResponse{ServerConfigJSON: nil}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
serverConfig, err := models.SharedServerDAO.ComposeServerConfigWithServerId(tx, req.ServerId, true)
|
serverConfig, err := models.SharedServerDAO.ComposeServerConfigWithServerId(tx, req.ServerId, false, true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if err == models.ErrNotFound {
|
if err == models.ErrNotFound {
|
||||||
return &pb.ComposeServerConfigResponse{ServerConfigJSON: nil}, nil
|
return &pb.ComposeServerConfigResponse{ServerConfigJSON: nil}, nil
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ func (this *SSLCertService) FindEnabledSSLCertConfig(ctx context.Context, req *p
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
config, err := models.SharedSSLCertDAO.ComposeCertConfig(tx, req.SslCertId, nil)
|
config, err := models.SharedSSLCertDAO.ComposeCertConfig(tx, req.SslCertId, false, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -179,7 +179,7 @@ func (this *SSLCertService) ListSSLCerts(ctx context.Context, req *pb.ListSSLCer
|
|||||||
|
|
||||||
certConfigs := []*sslconfigs.SSLCertConfig{}
|
certConfigs := []*sslconfigs.SSLCertConfig{}
|
||||||
for _, certId := range certIds {
|
for _, certId := range certIds {
|
||||||
certConfig, err := models.SharedSSLCertDAO.ComposeCertConfig(tx, certId, nil)
|
certConfig, err := models.SharedSSLCertDAO.ComposeCertConfig(tx, certId, false, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ func (this *SSLPolicyService) FindEnabledSSLPolicyConfig(ctx context.Context, re
|
|||||||
|
|
||||||
var tx = this.NullTx()
|
var tx = this.NullTx()
|
||||||
|
|
||||||
config, err := models.SharedSSLPolicyDAO.ComposePolicyConfig(tx, req.SslPolicyId, nil)
|
config, err := models.SharedSSLPolicyDAO.ComposePolicyConfig(tx, req.SslPolicyId, req.IgnoreData, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user