Merge pull request #504 from fudiwei/main

bugfix
This commit is contained in:
Yoan.liu 2025-03-10 21:15:23 +08:00 committed by GitHub
commit b28f0dc5e4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 68 additions and 20 deletions

View File

@ -6,5 +6,7 @@ services:
ports: ports:
- 8090:8090 - 8090:8090
volumes: volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- ./data:/app/pb_data - ./data:/app/pb_data
restart: unless-stopped restart: unless-stopped

View File

@ -1,7 +1,10 @@
package domain package domain
import ( import (
"crypto/ecdsa"
"crypto/rsa"
"crypto/x509" "crypto/x509"
"fmt"
"strings" "strings"
"time" "time"
@ -39,19 +42,58 @@ func (c *Certificate) PopulateFromX509(certX509 *x509.Certificate) *Certificate
c.EffectAt = certX509.NotBefore c.EffectAt = certX509.NotBefore
c.ExpireAt = certX509.NotAfter c.ExpireAt = certX509.NotAfter
switch certX509.SignatureAlgorithm { switch certX509.PublicKeyAlgorithm {
case x509.SHA256WithRSA, x509.SHA256WithRSAPSS: case x509.RSA:
{
len := 0
if pubkey, ok := certX509.PublicKey.(*rsa.PublicKey); ok {
len = pubkey.N.BitLen()
}
switch len {
case 0:
c.KeyAlgorithm = CertificateKeyAlgorithmType("RSA")
case 2048:
c.KeyAlgorithm = CertificateKeyAlgorithmTypeRSA2048 c.KeyAlgorithm = CertificateKeyAlgorithmTypeRSA2048
case x509.SHA384WithRSA, x509.SHA384WithRSAPSS: case 3072:
c.KeyAlgorithm = CertificateKeyAlgorithmTypeRSA3072 c.KeyAlgorithm = CertificateKeyAlgorithmTypeRSA3072
case x509.SHA512WithRSA, x509.SHA512WithRSAPSS: case 4096:
c.KeyAlgorithm = CertificateKeyAlgorithmTypeRSA4096 c.KeyAlgorithm = CertificateKeyAlgorithmTypeRSA4096
case x509.ECDSAWithSHA256: case 8192:
c.KeyAlgorithm = CertificateKeyAlgorithmTypeRSA8192
default:
c.KeyAlgorithm = CertificateKeyAlgorithmType(fmt.Sprintf("RSA%d", len))
}
}
case x509.ECDSA:
{
len := 0
if pubkey, ok := certX509.PublicKey.(*ecdsa.PublicKey); ok {
if pubkey.Curve != nil && pubkey.Curve.Params() != nil {
len = pubkey.Curve.Params().BitSize
}
}
switch len {
case 0:
c.KeyAlgorithm = CertificateKeyAlgorithmType("EC")
case 256:
c.KeyAlgorithm = CertificateKeyAlgorithmTypeEC256 c.KeyAlgorithm = CertificateKeyAlgorithmTypeEC256
case x509.ECDSAWithSHA384: case 384:
c.KeyAlgorithm = CertificateKeyAlgorithmTypeEC384 c.KeyAlgorithm = CertificateKeyAlgorithmTypeEC384
case x509.ECDSAWithSHA512: case 521:
c.KeyAlgorithm = CertificateKeyAlgorithmTypeEC512 c.KeyAlgorithm = CertificateKeyAlgorithmTypeEC512
default:
c.KeyAlgorithm = CertificateKeyAlgorithmType(fmt.Sprintf("EC%d", len))
}
}
case x509.Ed25519:
{
c.KeyAlgorithm = CertificateKeyAlgorithmType("ED25519")
}
default: default:
c.KeyAlgorithm = CertificateKeyAlgorithmType("") c.KeyAlgorithm = CertificateKeyAlgorithmType("")
} }

View File

@ -62,14 +62,14 @@ type WorkflowNode struct {
} }
type WorkflowNodeConfigForApply struct { type WorkflowNodeConfigForApply struct {
Domains string `json:"domains"` // 域名列表,以半角号分隔 Domains string `json:"domains"` // 域名列表,以半角号分隔
ContactEmail string `json:"contactEmail"` // 联系邮箱 ContactEmail string `json:"contactEmail"` // 联系邮箱
ChallengeType string `json:"challengeType"` // TODO: 验证方式。目前仅支持 dns-01 ChallengeType string `json:"challengeType"` // TODO: 验证方式。目前仅支持 dns-01
Provider string `json:"provider"` // DNS 提供商 Provider string `json:"provider"` // DNS 提供商
ProviderAccessId string `json:"providerAccessId"` // DNS 提供商授权记录 ID ProviderAccessId string `json:"providerAccessId"` // DNS 提供商授权记录 ID
ProviderConfig map[string]any `json:"providerConfig"` // DNS 提供商额外配置 ProviderConfig map[string]any `json:"providerConfig"` // DNS 提供商额外配置
KeyAlgorithm string `json:"keyAlgorithm"` // 密钥算法 KeyAlgorithm string `json:"keyAlgorithm"` // 密钥算法
Nameservers string `json:"nameservers"` // DNS 服务器列表,以半角号分隔 Nameservers string `json:"nameservers"` // DNS 服务器列表,以半角号分隔
DnsPropagationTimeout int32 `json:"dnsPropagationTimeout"` // DNS 传播超时时间(零值取决于提供商的默认值) DnsPropagationTimeout int32 `json:"dnsPropagationTimeout"` // DNS 传播超时时间(零值取决于提供商的默认值)
DnsTTL int32 `json:"dnsTTL"` // DNS TTL零值取决于提供商的默认值 DnsTTL int32 `json:"dnsTTL"` // DNS TTL零值取决于提供商的默认值
DisableFollowCNAME bool `json:"disableFollowCNAME"` // 是否关闭 CNAME 跟随 DisableFollowCNAME bool `json:"disableFollowCNAME"` // 是否关闭 CNAME 跟随

View File

@ -16,7 +16,9 @@ export type DeployNodeConfigForm1PanelConsoleConfigProps = {
}; };
const initFormModel = (): DeployNodeConfigForm1PanelConsoleConfigFieldValues => { const initFormModel = (): DeployNodeConfigForm1PanelConsoleConfigFieldValues => {
return {}; return {
autoRestart: true,
};
}; };
const DeployNodeConfigForm1PanelConsoleConfig = ({ const DeployNodeConfigForm1PanelConsoleConfig = ({

View File

@ -16,7 +16,9 @@ export type DeployNodeConfigFormBaotaPanelConsoleConfigProps = {
}; };
const initFormModel = (): DeployNodeConfigFormBaotaPanelConsoleConfigFieldValues => { const initFormModel = (): DeployNodeConfigFormBaotaPanelConsoleConfigFieldValues => {
return {}; return {
autoRestart: true,
};
}; };
const DeployNodeConfigFormBaotaPanelConsoleConfig = ({ const DeployNodeConfigFormBaotaPanelConsoleConfig = ({

View File

@ -4,7 +4,7 @@ import { version } from "@/domain/version";
export type UseVersionCheckerReturns = { export type UseVersionCheckerReturns = {
hasNewVersion: boolean; hasNewVersion: boolean;
check: () => void; checkNewVersion: () => void;
}; };
const extractSemver = (vers: string) => { const extractSemver = (vers: string) => {
@ -48,7 +48,7 @@ const useVersionChecker = () => {
} }
const nIdx = releases.findIndex((e: any) => compareVersions(e.name, version) !== -1); const nIdx = releases.findIndex((e: any) => compareVersions(e.name, version) !== -1);
if (cIdx >= nIdx) { if (cIdx !== -1 && cIdx <= nIdx) {
return false; return false;
} }
@ -63,7 +63,7 @@ const useVersionChecker = () => {
return { return {
hasNewVersion: !!data, hasNewVersion: !!data,
check: refresh, checkNewVersion: refresh,
}; };
}; };