mirror of https://github.com/bjdgyc/anylink.git
修复Banner特殊字符
This commit is contained in:
parent
aa2b89855f
commit
3879c3a4bc
|
@ -18,32 +18,14 @@ import (
|
||||||
"github.com/pion/logging"
|
"github.com/pion/logging"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
|
||||||
dtlsSigneRsa = 1
|
|
||||||
dtlsSigneEcdsa = 2
|
|
||||||
)
|
|
||||||
|
|
||||||
var dtlsSigneType = dtlsSigneRsa
|
|
||||||
|
|
||||||
func startDtls() {
|
func startDtls() {
|
||||||
if !base.Cfg.ServerDTLS {
|
if !base.Cfg.ServerDTLS {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
|
||||||
err error
|
|
||||||
certificate tls.Certificate
|
|
||||||
)
|
|
||||||
|
|
||||||
// rsa 兼容 open connect
|
// rsa 兼容 open connect
|
||||||
if dtlsSigneType == dtlsSigneRsa {
|
priv, _ := rsa.GenerateKey(rand.Reader, 2048)
|
||||||
priv, _ := rsa.GenerateKey(rand.Reader, 2048)
|
certificate, err := selfsign.SelfSign(priv)
|
||||||
certificate, err = selfsign.SelfSign(priv)
|
|
||||||
}
|
|
||||||
// ecdsa
|
|
||||||
if dtlsSigneType == dtlsSigneEcdsa {
|
|
||||||
certificate, err = selfsign.GenerateSelfSigned()
|
|
||||||
}
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
@ -61,10 +43,8 @@ func startDtls() {
|
||||||
ExtendedMasterSecret: dtls.DisableExtendedMasterSecret,
|
ExtendedMasterSecret: dtls.DisableExtendedMasterSecret,
|
||||||
CipherSuites: func() []dtls.CipherSuiteID {
|
CipherSuites: func() []dtls.CipherSuiteID {
|
||||||
var cs = []dtls.CipherSuiteID{}
|
var cs = []dtls.CipherSuiteID{}
|
||||||
for _, v := range dtlsCipherSuites {
|
for _, vv := range dtlsCipherSuites {
|
||||||
for _, vv := range v {
|
cs = append(cs, vv)
|
||||||
cs = append(cs, vv)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return cs
|
return cs
|
||||||
}(),
|
}(),
|
||||||
|
@ -131,35 +111,21 @@ func (ms *sessionStore) Del(key []byte) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 客户端和服务端映射 X-DTLS12-CipherSuite
|
// 客户端和服务端映射 X-DTLS12-CipherSuite
|
||||||
var dtlsCipherSuites = map[string]map[string]dtls.CipherSuiteID{
|
var dtlsCipherSuites = map[string]dtls.CipherSuiteID{
|
||||||
"ECDSA": {
|
// "ECDHE-ECDSA-AES256-GCM-SHA384": dtls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
|
||||||
"ECDHE-ECDSA-AES256-GCM-SHA384": dtls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
|
// "ECDHE-ECDSA-AES128-GCM-SHA256": dtls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
|
||||||
"ECDHE-ECDSA-AES128-GCM-SHA256": dtls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
|
"ECDHE-RSA-AES256-GCM-SHA384": dtls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
|
||||||
},
|
"ECDHE-RSA-AES128-GCM-SHA256": dtls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
|
||||||
"RSA": {
|
|
||||||
"ECDHE-RSA-AES256-GCM-SHA384": dtls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
|
|
||||||
"ECDHE-RSA-AES128-GCM-SHA256": dtls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func checkDtls12Ciphersuite(ciphersuite string) string {
|
func checkDtls12Ciphersuite(ciphersuite string) string {
|
||||||
csArr := strings.Split(ciphersuite, ",")
|
csArr := strings.Split(ciphersuite, ":")
|
||||||
// ECDSA
|
|
||||||
if dtlsSigneType == dtlsSigneEcdsa {
|
|
||||||
for _, v := range csArr {
|
|
||||||
if _, ok := dtlsCipherSuites["ECDSA"][v]; ok {
|
|
||||||
return v
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 返回默认值
|
|
||||||
return "ECDHE-ECDSA-AES256-GCM-SHA384"
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, v := range csArr {
|
for _, v := range csArr {
|
||||||
if _, ok := dtlsCipherSuites["RSA"][v]; ok {
|
if _, ok := dtlsCipherSuites[v]; ok {
|
||||||
return v
|
return v
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 返回默认值
|
// 返回默认值
|
||||||
return "ECDHE-RSA-AES256-GCM-SHA384"
|
return "ECDHE-RSA-AES128-GCM-SHA256"
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,7 @@ import (
|
||||||
"github.com/bjdgyc/anylink/base"
|
"github.com/bjdgyc/anylink/base"
|
||||||
"github.com/bjdgyc/anylink/dbdata"
|
"github.com/bjdgyc/anylink/dbdata"
|
||||||
"github.com/bjdgyc/anylink/sessdata"
|
"github.com/bjdgyc/anylink/sessdata"
|
||||||
|
"golang.org/x/net/html"
|
||||||
)
|
)
|
||||||
|
|
||||||
var profileHash = ""
|
var profileHash = ""
|
||||||
|
@ -157,6 +158,7 @@ func tplRequest(typ int, w io.Writer, data RequestData) {
|
||||||
if strings.Contains(data.Banner, "\n") {
|
if strings.Contains(data.Banner, "\n") {
|
||||||
// 替换xml文件的换行符
|
// 替换xml文件的换行符
|
||||||
data.Banner = strings.ReplaceAll(data.Banner, "\n", "
")
|
data.Banner = strings.ReplaceAll(data.Banner, "\n", "
")
|
||||||
|
data.Banner = html.EscapeString(data.Banner)
|
||||||
}
|
}
|
||||||
t, _ := template.New("auth_complete").Parse(auth_complete)
|
t, _ := template.New("auth_complete").Parse(auth_complete)
|
||||||
_ = t.Execute(w, data)
|
_ = t.Execute(w, data)
|
||||||
|
|
Loading…
Reference in New Issue