summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ipaserver/plugins/ldap2.py3
-rw-r--r--ipaserver/rpcserver.py8
2 files changed, 10 insertions, 1 deletions
diff --git a/ipaserver/plugins/ldap2.py b/ipaserver/plugins/ldap2.py
index 0a76670d9..ffe2fba8a 100644
--- a/ipaserver/plugins/ldap2.py
+++ b/ipaserver/plugins/ldap2.py
@@ -241,6 +241,9 @@ def _handle_errors(e, **kw):
except _ldap.SUCCESS:
pass
except _ldap.LDAPError, e:
+ if 'NOT_ALLOWED_TO_DELEGATE' in info:
+ raise errors.ACIError(info="KDC returned NOT_ALLOWED_TO_DELEGATE")
+ root_logger.info('Unhandled LDAPError: %s' % str(e))
raise errors.DatabaseError(desc=desc, info=info)
diff --git a/ipaserver/rpcserver.py b/ipaserver/rpcserver.py
index 91e525a31..205dc7655 100644
--- a/ipaserver/rpcserver.py
+++ b/ipaserver/rpcserver.py
@@ -317,9 +317,15 @@ class xmlserver(WSGIExecutioner):
'''
self.debug('WSGI xmlserver.__call__:')
- self.create_context(ccache=environ.get('KRB5CCNAME'))
try:
+ self.create_context(ccache=environ.get('KRB5CCNAME'))
response = super(xmlserver, self).__call__(environ, start_response)
+ except PublicError, e:
+ status = '200 OK'
+ response = status
+ headers = [('Content-Type', 'text/plain')]
+ start_response(status, headers)
+ return self.marshal(None, e)
finally:
destroy_context()
return response