Skip to content

Commit

Permalink
fix: integration test
Browse files Browse the repository at this point in the history
Signed-off-by: sekfung <sekfung.lau@gmail.com>
  • Loading branch information
sekfung committed Mar 13, 2023
1 parent dc963ed commit d3c52b9
Show file tree
Hide file tree
Showing 5 changed files with 74 additions and 13 deletions.
1 change: 1 addition & 0 deletions common/constant/key.go
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,7 @@ const (
LoggerConfigPrefix = "dubbo.logger"
CustomConfigPrefix = "dubbo.custom"
ProfilesConfigPrefix = "dubbo.profiles"
TLSConfigPrefix = "dubbo.tls_config"
)

const (
Expand Down
22 changes: 21 additions & 1 deletion config/tls_config.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ import (
"io/ioutil"
)

import (
"dubbo.apache.org/dubbo-go/v3/common/constant"
)

// TLSConfig tls config
type TLSConfig struct {
CACertFile string `yaml:"ca-cert-file" json:"ca-cert-file" property:"ca-cert-file"`
Expand All @@ -31,6 +35,10 @@ type TLSConfig struct {
TLSServerName string `yaml:"tls-server-name" json:"tls-server-name" property:"tls-server-name"`
}

func (t *TLSConfig) Prefix() string {
return constant.TLSConfigPrefix
}

// GetServerTlsConfig build server tls config from TLSConfig
func GetServerTlsConfig(opt *TLSConfig) (*tls.Config, error) {
//no TLS
Expand Down Expand Up @@ -97,25 +105,37 @@ type TLSConfigBuilder struct {
}

func NewTLSConfigBuilder() *TLSConfigBuilder {
return &TLSConfigBuilder{tlsConfig: &TLSConfig{}}
return &TLSConfigBuilder{}
}

func (tcb *TLSConfigBuilder) SetCACertFile(caCertFile string) *TLSConfigBuilder {
if tcb.tlsConfig == nil {
tcb.tlsConfig = &TLSConfig{}
}
tcb.tlsConfig.CACertFile = caCertFile
return tcb
}

func (tcb *TLSConfigBuilder) SetTLSCertFile(tlsCertFile string) *TLSConfigBuilder {
if tcb.tlsConfig == nil {
tcb.tlsConfig = &TLSConfig{}
}
tcb.tlsConfig.TLSCertFile = tlsCertFile
return tcb
}

func (tcb *TLSConfigBuilder) SetTLSKeyFile(tlsKeyFile string) *TLSConfigBuilder {
if tcb.tlsConfig == nil {
tcb.tlsConfig = &TLSConfig{}
}
tcb.tlsConfig.TLSKeyFile = tlsKeyFile
return tcb
}

func (tcb *TLSConfigBuilder) SetTLSServerName(tlsServerName string) *TLSConfigBuilder {
if tcb.tlsConfig == nil {
tcb.tlsConfig = &TLSConfig{}
}
tcb.tlsConfig.TLSServerName = tlsServerName
return tcb
}
Expand Down
28 changes: 28 additions & 0 deletions config/tls_config_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package config

import (
"testing"
)

import (
"github.com/stretchr/testify/assert"
)

import (
"dubbo.apache.org/dubbo-go/v3/common/constant"
)

func TestNewTLSConfigBuilder(t *testing.T) {
config := NewTLSConfigBuilder().
SetCACertFile("ca_cert_file").
SetTLSKeyFile("tls_key_file").
SetTLSServerName("tls_server_name").
SetTLSCertFile("tls_cert_file").
Build()
assert.Equal(t, config.CACertFile, "ca_cert_file")
assert.Equal(t, config.TLSCertFile, "tls_cert_file")
assert.Equal(t, config.TLSServerName, "tls_server_name")
assert.Equal(t, config.TLSKeyFile, "tls_key_file")
assert.Equal(t, config.Prefix(), constant.TLSConfigPrefix)

}
19 changes: 12 additions & 7 deletions protocol/grpc/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
package grpc

import (
"crypto/tls"
"reflect"
"strconv"
"sync"
Expand Down Expand Up @@ -79,13 +78,19 @@ func NewClient(url *common.URL) (*Client, error) {
grpc.MaxCallSendMsgSize(1024*1024*maxMessageSize),
),
)
var cfg *tls.Config
var err error
if cfg, err = config.GetClientTlsConfig(config.GetTLSConfig()); err != nil {
return nil, err
}
if cfg != nil {
tlsConfig := config.GetRootConfig().TLSConfig

if tlsConfig != nil {
cfg, err := config.GetClientTlsConfig(&config.TLSConfig{
CACertFile: tlsConfig.CACertFile,
TLSCertFile: tlsConfig.TLSCertFile,
TLSKeyFile: tlsConfig.TLSKeyFile,
TLSServerName: tlsConfig.TLSServerName,
})
logger.Infof("Grpc Client initialized the TLSConfig configuration")
if err != nil {
return nil, err
}
dialOpts = append(dialOpts, grpc.WithTransportCredentials(credentials.NewTLS(cfg)))
} else {
dialOpts = append(dialOpts, grpc.WithTransportCredentials(insecure.NewCredentials()))
Expand Down
17 changes: 12 additions & 5 deletions protocol/grpc/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -92,11 +92,18 @@ func (s *Server) Start(url *common.URL) {
grpc.MaxSendMsgSize(1024*1024*s.bufferSize),
)

var cfg *tls.Config
if cfg, err = config.GetServerTlsConfig(config.GetTLSConfig()); err != nil {
return
}
if cfg != nil {
tlsConfig := config.GetRootConfig().TLSConfig
if tlsConfig != nil {
var cfg *tls.Config
cfg, err = config.GetServerTlsConfig(&config.TLSConfig{
CACertFile: tlsConfig.CACertFile,
TLSCertFile: tlsConfig.TLSCertFile,
TLSKeyFile: tlsConfig.TLSKeyFile,
TLSServerName: tlsConfig.TLSServerName,
})
if err != nil {
return
}
logger.Infof("Grpc Server initialized the TLSConfig configuration")
serverOpts = append(serverOpts, grpc.Creds(credentials.NewTLS(cfg)))
} else {
Expand Down

0 comments on commit d3c52b9

Please sign in to comment.