diff options
author | Jason Gerard DeRose <jderose@redhat.com> | 2009-01-23 12:51:48 -0700 |
---|---|---|
committer | Rob Crittenden <rcritten@redhat.com> | 2009-02-03 15:29:02 -0500 |
commit | 0313f03277cf0b3e3b24019fd22734dab65d4860 (patch) | |
tree | 1143714800efee619cb6e6ec9927158f7c37c57f /ipalib/rpc.py | |
parent | 114b6b8577ca9585efe8914d5fdd739f208d6ba8 (diff) | |
download | freeipa-0313f03277cf0b3e3b24019fd22734dab65d4860.tar.gz freeipa-0313f03277cf0b3e3b24019fd22734dab65d4860.tar.xz freeipa-0313f03277cf0b3e3b24019fd22734dab65d4860.zip |
Added ServiceError (KerberosError) and make rpc.KerbTransport raise it if appropriate
Diffstat (limited to 'ipalib/rpc.py')
-rw-r--r-- | ipalib/rpc.py | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/ipalib/rpc.py b/ipalib/rpc.py index 55f3ea954..9e7060d28 100644 --- a/ipalib/rpc.py +++ b/ipalib/rpc.py @@ -37,6 +37,7 @@ from xmlrpclib import Binary, Fault, dumps, loads, ServerProxy, SafeTransport import kerberos from ipalib.backend import Backend from ipalib.errors2 import public_errors, PublicError, UnknownError, NetworkError +from ipalib import errors2 from ipalib.request import context @@ -178,7 +179,6 @@ class KerbTransport(SafeTransport): """ def get_host_info(self, host): - (host, extra_headers, x509) = SafeTransport.get_host_info(self, host) # Set the remote host principal @@ -192,7 +192,11 @@ class KerbTransport(SafeTransport): try: kerberos.authGSSClientStep(vc, "") except kerberos.GSSError, e: - raise e # FIXME: raise a PublicError + (major, minor) = e.args + if minor[1] == -1765328377: + raise errors2.ServiceError(service=service) + else: + raise e extra_headers += [ ('Authorization', 'negotiate %s' % kerberos.authGSSClientResponse(vc)) @@ -220,6 +224,7 @@ class xmlclient(Backend): ) ) conn = ServerProxy(self.env.xmlrpc_uri, + transport=KerbTransport(), allow_none=True, encoding='UTF-8', ) |