propagate proxyauthtype in login calls
This commit is contained in:
parent
ac8e83e3ac
commit
252121c11f
2 changed files with 15 additions and 11 deletions
|
|
@ -2483,7 +2483,8 @@ class ClientSession(object):
|
|||
return self.gssapi_login(principal=principal, keytab=keytab,
|
||||
ccache=ccache, proxyuser=proxyuser)
|
||||
|
||||
def gssapi_login(self, principal=None, keytab=None, ccache=None, proxyuser=None):
|
||||
def gssapi_login(self, principal=None, keytab=None, ccache=None,
|
||||
proxyuser=None, proxyauthtype=None):
|
||||
if not reqgssapi:
|
||||
raise PythonImportError(
|
||||
"Please install python-requests-gssapi to use GSSAPI."
|
||||
|
|
@ -2526,7 +2527,9 @@ class ClientSession(object):
|
|||
# Depending on the server configuration, we might not be able to
|
||||
# connect without client certificate, which means that the conn
|
||||
# will fail with a handshake failure, which is retried by default.
|
||||
sinfo = self._callMethod('sslLogin', [proxyuser], retry=False)
|
||||
sinfo = self._callMethod('sslLogin', [],
|
||||
{'proxyuser': proxyuser, 'proxyauthtype': proxyauthtype},
|
||||
retry=False)
|
||||
except Exception as e:
|
||||
e_str = ''.join(traceback.format_exception_only(type(e), e)).strip('\n')
|
||||
e_str = '(gssapi auth failed: %s)\n' % e_str
|
||||
|
|
@ -2553,7 +2556,7 @@ class ClientSession(object):
|
|||
self.authtype = AUTHTYPE_GSSAPI
|
||||
return True
|
||||
|
||||
def ssl_login(self, cert=None, ca=None, serverca=None, proxyuser=None):
|
||||
def ssl_login(self, cert=None, ca=None, serverca=None, proxyuser=None, proxyauthtype=None):
|
||||
cert = cert or self.opts.get('cert')
|
||||
serverca = serverca or self.opts.get('serverca')
|
||||
if cert is None:
|
||||
|
|
@ -2582,7 +2585,9 @@ class ClientSession(object):
|
|||
self.opts['serverca'] = serverca
|
||||
e_str = None
|
||||
try:
|
||||
sinfo = self.callMethod('sslLogin', proxyuser)
|
||||
sinfo = self.callMethod('sslLogin', [],
|
||||
{'proxyuser': proxyuser, 'proxyauthtype': proxyauthtype})
|
||||
|
||||
except Exception as ex:
|
||||
e_str = ''.join(traceback.format_exception_only(type(ex), ex))
|
||||
e_str = 'ssl auth failed: %s' % e_str
|
||||
|
|
|
|||
|
|
@ -26,8 +26,8 @@ class TestGSSAPI(unittest.TestCase):
|
|||
def test_gssapi_login(self):
|
||||
old_environ = dict(**os.environ)
|
||||
self.session.gssapi_login()
|
||||
self.session._callMethod.assert_called_once_with('sslLogin', [None],
|
||||
retry=False)
|
||||
self.session._callMethod.assert_called_once_with(
|
||||
'sslLogin', [], {'proxyuser': None, 'proxyauthtype': None}, retry=False)
|
||||
self.assertEqual(old_environ, dict(**os.environ))
|
||||
|
||||
@mock.patch('koji.reqgssapi.HTTPKerberosAuth')
|
||||
|
|
@ -46,9 +46,8 @@ class TestGSSAPI(unittest.TestCase):
|
|||
for accepted_version in accepted_versions:
|
||||
koji.reqgssapi.__version__ = accepted_version
|
||||
rv = self.session.gssapi_login(principal, keytab, ccache)
|
||||
self.session._callMethod.assert_called_once_with('sslLogin',
|
||||
[None],
|
||||
retry=False)
|
||||
self.session._callMethod.assert_called_once_with(
|
||||
'sslLogin', [], {'proxyuser': None, 'proxyauthtype': None}, retry=False)
|
||||
self.assertEqual(old_environ, dict(**os.environ))
|
||||
self.assertTrue(rv)
|
||||
self.session._callMethod.reset_mock()
|
||||
|
|
@ -84,8 +83,8 @@ class TestGSSAPI(unittest.TestCase):
|
|||
self.session._callMethod.side_effect = Exception('login failed')
|
||||
with self.assertRaises(koji.GSSAPIAuthError):
|
||||
self.session.gssapi_login()
|
||||
self.session._callMethod.assert_called_once_with('sslLogin', [None],
|
||||
retry=False)
|
||||
self.session._callMethod.assert_called_once_with(
|
||||
'sslLogin', [], {'proxyuser': None, 'proxyauthtype': None}, retry=False)
|
||||
self.assertEqual(old_environ, dict(**os.environ))
|
||||
|
||||
def test_gssapi_login_http(self):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue