@@ -17,25 +17,6 @@ import (
17
17
"google.golang.org/grpc"
18
18
)
19
19
20
- //A SecureServerConfig structure is used to configure security (e.g. TLS) for a
21
- //GRPCServer instance
22
- type SecureServerConfig struct {
23
- //PEM-encoded X509 public key to be used by the server for TLS communication
24
- ServerCertificate []byte
25
- //PEM-encoded private key to be used by the server for TLS communication
26
- ServerKey []byte
27
- //Set of PEM-encoded X509 certificate authorities to optionally send
28
- //as part of the server handshake
29
- ServerRootCAs [][]byte
30
- //Set of PEM-encoded X509 certificate authorities to use when verifying
31
- //client certificates
32
- ClientRootCAs [][]byte
33
- //Whether or not to use TLS for communication
34
- UseTLS bool
35
- //Whether or not TLS client must present certificates for authentication
36
- RequireClientCert bool
37
- }
38
-
39
20
//GRPCServer defines an interface representing a GRPC-based server
40
21
type GRPCServer interface {
41
22
//Address returns the listen address for the GRPCServer
@@ -96,25 +77,25 @@ type grpcServerImpl struct {
96
77
97
78
//NewGRPCServer creates a new implementation of a GRPCServer given a
98
79
//listen address
99
- func NewGRPCServer (address string , secureConfig SecureServerConfig ) (GRPCServer , error ) {
100
- return newGRPCServerWithKa (address , secureConfig , & keepaliveOptions )
80
+ func NewGRPCServer (address string , serverConfig ServerConfig ) (GRPCServer , error ) {
81
+ return newGRPCServerWithKa (address , serverConfig , & keepaliveOptions )
101
82
}
102
83
103
84
//NewChaincodeGRPCServer creates a new implementation of a chaincode GRPCServer given a
104
85
//listen address
105
- func NewChaincodeGRPCServer (address string , secureConfig SecureServerConfig ) (GRPCServer , error ) {
106
- return newGRPCServerWithKa (address , secureConfig , & chaincodeKeepaliveOptions )
86
+ func NewChaincodeGRPCServer (address string , serverConfig ServerConfig ) (GRPCServer , error ) {
87
+ return newGRPCServerWithKa (address , serverConfig , & chaincodeKeepaliveOptions )
107
88
}
108
89
109
90
//NewGRPCServerFromListener creates a new implementation of a GRPCServer given
110
91
//an existing net.Listener instance using default keepalive
111
- func NewGRPCServerFromListener (listener net.Listener , secureConfig SecureServerConfig ) (GRPCServer , error ) {
112
- return newGRPCServerFromListenerWithKa (listener , secureConfig , & keepaliveOptions )
92
+ func NewGRPCServerFromListener (listener net.Listener , serverConfig ServerConfig ) (GRPCServer , error ) {
93
+ return newGRPCServerFromListenerWithKa (listener , serverConfig , & keepaliveOptions )
113
94
}
114
95
115
96
//newGRPCServerWithKa creates a new implementation of a GRPCServer given a
116
97
//listen address with specified keepalive options
117
- func newGRPCServerWithKa (address string , secureConfig SecureServerConfig , ka * KeepaliveOptions ) (GRPCServer , error ) {
98
+ func newGRPCServerWithKa (address string , serverConfig ServerConfig , ka * KeepaliveOptions ) (GRPCServer , error ) {
118
99
119
100
if address == "" {
120
101
return nil , errors .New ("Missing address parameter" )
@@ -126,13 +107,14 @@ func newGRPCServerWithKa(address string, secureConfig SecureServerConfig, ka *Ke
126
107
return nil , err
127
108
}
128
109
129
- return newGRPCServerFromListenerWithKa (lis , secureConfig , ka )
110
+ return newGRPCServerFromListenerWithKa (lis , serverConfig , ka )
130
111
131
112
}
132
113
133
114
//newGRPCServerFromListenerWithKa creates a new implementation of a GRPCServer given
134
115
//an existing net.Listener instance with specfied keepalive
135
- func newGRPCServerFromListenerWithKa (listener net.Listener , secureConfig SecureServerConfig , ka * KeepaliveOptions ) (GRPCServer , error ) {
116
+ func newGRPCServerFromListenerWithKa (listener net.Listener , serverConfig ServerConfig ,
117
+ ka * KeepaliveOptions ) (GRPCServer , error ) {
136
118
grpcServer := & grpcServerImpl {
137
119
address : listener .Addr ().String (),
138
120
listener : listener ,
@@ -141,8 +123,9 @@ func newGRPCServerFromListenerWithKa(listener net.Listener, secureConfig SecureS
141
123
142
124
//set up our server options
143
125
var serverOpts []grpc.ServerOption
144
- //check secureConfig
145
- if secureConfig .UseTLS {
126
+ //check SecOpts
127
+ secureConfig := serverConfig .SecOpts
128
+ if secureConfig != nil && secureConfig .UseTLS {
146
129
//both key and cert are required
147
130
if secureConfig .ServerKey != nil && secureConfig .ServerCertificate != nil {
148
131
grpcServer .tlsEnabled = true
@@ -184,7 +167,7 @@ func newGRPCServerFromListenerWithKa(listener net.Listener, secureConfig SecureS
184
167
creds := NewServerTransportCredentials (grpcServer .tlsConfig )
185
168
serverOpts = append (serverOpts , grpc .Creds (creds ))
186
169
} else {
187
- return nil , errors .New ("secureConfig must contain both ServerKey and " +
170
+ return nil , errors .New ("serverConfig.SecOpts must contain both ServerKey and " +
188
171
"ServerCertificate when UseTLS is true" )
189
172
}
190
173
}
0 commit comments