Skip to content

Commit bfd5d12

Browse files
authored
Merge pull request #750 from brubbel/cert-to-server
moved certificate variable from InternalServer to Server class
2 parents 2e04f17 + 2950825 commit bfd5d12

2 files changed

Lines changed: 8 additions & 8 deletions

File tree

opcua/server/internal_server.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@ def __init__(self, shelffile=None):
6464
self.disabled_clock = False # for debugging we may want to disable clock that writes too much in log
6565
self._known_servers = {} # used if we are a discovery server
6666

67-
self.certificate = None
6867
self.private_key = None
6968

7069
self.aspace = AddressSpace()
@@ -466,4 +465,4 @@ def default_user_manager(iserver, isession, userName, password):
466465
"""
467466
if iserver.allow_remote_admin and userName in ("admin", "Admin"):
468467
isession.user = User.Admin
469-
return True
468+
return True

opcua/server/server.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ def __init__(self, shelffile=None, iserver=None):
112112

113113

114114
# enable all endpoints by default
115+
self.certificate = None
115116
self._security_policy = [
116117
ua.SecurityPolicyType.NoSecurity,
117118
ua.SecurityPolicyType.Basic256Sha256_SignAndEncrypt,
@@ -130,7 +131,7 @@ def load_certificate(self, path):
130131
"""
131132
load server certificate from file, either pem or der
132133
"""
133-
self.iserver.certificate = uacrypto.load_certificate(path)
134+
self.certificate = uacrypto.load_certificate(path)
134135

135136
def load_private_key(self, path):
136137
self.iserver.private_key = uacrypto.load_private_key(path)
@@ -255,7 +256,7 @@ def _setup_server_nodes(self):
255256
self._policies = [ua.SecurityPolicyFactory()]
256257

257258
if self._security_policy != [ua.SecurityPolicyType.NoSecurity]:
258-
if not (self.iserver.certificate and self.iserver.private_key):
259+
if not (self.certificate and self.iserver.private_key):
259260
self.logger.warning("Endpoints other than open requested but private key and certificate are not set.")
260261
return
261262

@@ -267,15 +268,15 @@ def _setup_server_nodes(self):
267268
ua.MessageSecurityMode.SignAndEncrypt)
268269
self._policies.append(ua.SecurityPolicyFactory(security_policies.SecurityPolicyBasic256Sha256,
269270
ua.MessageSecurityMode.SignAndEncrypt,
270-
self.iserver.certificate,
271+
self.certificate,
271272
self.iserver.private_key)
272273
)
273274
if ua.SecurityPolicyType.Basic256Sha256_Sign in self._security_policy:
274275
self._set_endpoints(security_policies.SecurityPolicyBasic256Sha256,
275276
ua.MessageSecurityMode.Sign)
276277
self._policies.append(ua.SecurityPolicyFactory(security_policies.SecurityPolicyBasic256Sha256,
277278
ua.MessageSecurityMode.Sign,
278-
self.iserver.certificate,
279+
self.certificate,
279280
self.iserver.private_key)
280281
)
281282

@@ -309,8 +310,8 @@ def _set_endpoints(self, policy=ua.SecurityPolicy, mode=ua.MessageSecurityMode.N
309310
edp = ua.EndpointDescription()
310311
edp.EndpointUrl = self.endpoint.geturl()
311312
edp.Server = appdesc
312-
if self.iserver.certificate:
313-
edp.ServerCertificate = uacrypto.der_from_x509(self.iserver.certificate)
313+
if self.certificate:
314+
edp.ServerCertificate = uacrypto.der_from_x509(self.certificate)
314315
edp.SecurityMode = mode
315316
edp.SecurityPolicyUri = policy.URI
316317
edp.UserIdentityTokens = idtokens

0 commit comments

Comments
 (0)