Simplify auth logic (#35647)

This commit is contained in:
Dag Wieers 2018-02-02 12:58:04 +01:00 committed by GitHub
parent 57870379d4
commit ddbe52d0f4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -176,15 +176,17 @@ class ACIModule(object):
# Ensure protocol is set # Ensure protocol is set
self.define_protocol() self.define_protocol()
if self.params['private_key'] is None: if self.params['private_key']:
if self.params['password'] is None: # Perform signature-based authentication, no need to log on separately
self.module.fail_json(msg="Parameter 'password' is required for HTTP authentication") if not HAS_OPENSSL:
# Only log in when password-based authentication is used
self.login()
elif not HAS_OPENSSL:
self.module.fail_json(msg='Cannot use signature-based authentication because pyopenssl is not available') self.module.fail_json(msg='Cannot use signature-based authentication because pyopenssl is not available')
elif self.params['password'] is not None: elif self.params['password'] is not None:
self.module.warn('When doing ACI signatured-based authentication, a password is not required') self.module.warn("When doing ACI signatured-based authentication, providing parameter 'password' is not required")
elif self.params['password']:
# Perform password-based authentication, log on using password
self.login()
else:
self.module.fail_json(msg="Either parameter 'password' or 'private_key' is required for authentication")
def iso8601_format(self, dt): def iso8601_format(self, dt):
''' Return an ACI-compatible ISO8601 formatted time: 2123-12-12T00:00:00.000+00:00 ''' ''' Return an ACI-compatible ISO8601 formatted time: 2123-12-12T00:00:00.000+00:00 '''