Commit 208a84fd authored by Curious Crook's avatar Curious Crook Committed by GitHub

Fixes #929 activate_session(without arguments) discards previously set certificate. (#932)

* Fixes #929 : error in Client.activate_session()

Fixes the error that a call to Client.activate_session() without arguments overwrites a user certificate previously set with Client.load_client_certificate(user_cert_file).

* Do not override already set user certificate

If you set the user certificate with Client.load_client_certificate() and then activate the session with Client.activate_session() without passing the certificate as an argument, the previously set certificate is discarded.
parent 22163150
......@@ -447,6 +447,7 @@ class Client:
"""
Activate session using either username and password or private_key
"""
user_certificate = certificate or self.user_certificate
params = ua.ActivateSessionParameters()
challenge = b""
if self.security_policy.peer_certificate is not None:
......@@ -459,10 +460,10 @@ class Client:
params.ClientSignature.Algorithm = (security_policies.SecurityPolicyBasic256.AsymmetricSignatureURI)
params.ClientSignature.Signature = self.security_policy.asymmetric_cryptography.signature(challenge)
params.LocaleIds = self._locale
if not username and not certificate:
if not username and not user_certificate:
self._add_anonymous_auth(params)
elif certificate:
self._add_certificate_auth(params, certificate, challenge)
elif user_certificate:
self._add_certificate_auth(params, user_certificate, challenge)
else:
self._add_user_auth(params, username, password)
return await self.uaclient.activate_session(params)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment