diff options
author | rcritten@redhat.com <rcritten@redhat.com> | 2007-09-05 13:14:23 -0400 |
---|---|---|
committer | rcritten@redhat.com <rcritten@redhat.com> | 2007-09-05 13:14:23 -0400 |
commit | 9b30f4674465b8e5f9bfcb359a9a9336dec0d120 (patch) | |
tree | 6cd0e8e521b315e17484445cd9b6507b5727244c /ipa-server/xmlrpc-server/ipaxmlrpc.py | |
parent | 82943c31de32b0388a7c23e6e6a18cc9c99ac502 (diff) | |
download | freeipa-9b30f4674465b8e5f9bfcb359a9a9336dec0d120.tar.gz freeipa-9b30f4674465b8e5f9bfcb359a9a9336dec0d120.tar.xz freeipa-9b30f4674465b8e5f9bfcb359a9a9336dec0d120.zip |
Enable LDAP SASL authentication using a forwarded kerberos ticket
Handle both SASL auth and proxied authentication
Refactor LDAP connection code to be simpler
Other small bug fixes
Diffstat (limited to 'ipa-server/xmlrpc-server/ipaxmlrpc.py')
-rw-r--r-- | ipa-server/xmlrpc-server/ipaxmlrpc.py | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/ipa-server/xmlrpc-server/ipaxmlrpc.py b/ipa-server/xmlrpc-server/ipaxmlrpc.py index 5dc60b51..f2ddd35e 100644 --- a/ipa-server/xmlrpc-server/ipaxmlrpc.py +++ b/ipa-server/xmlrpc-server/ipaxmlrpc.py @@ -126,13 +126,19 @@ class ModXMLRPCRequestHandler(object): def register_instance(self,instance): self.register_module(instance) - def _marshaled_dispatch(self, data, remoteuser): + def _marshaled_dispatch(self, data, req): """Dispatches an XML-RPC method from marshalled (XML) data.""" params, method = loads(data) + # Populate the Apache environment variables + req.add_common_vars() + opts={} - opts['remoteuser'] = remoteuser + opts['remoteuser'] = req.user + + if req.subprocess_env.get("KRB5CCNAME") is not None: + opts['keytab'] = req.subprocess_env.get("KRB5CCNAME") # Tack onto the end of the passed-in arguments any options we also # need @@ -263,7 +269,7 @@ class ModXMLRPCRequestHandler(object): req.allow_methods(['POST'],1) raise apache.SERVER_RETURN, apache.HTTP_METHOD_NOT_ALLOWED - response = self._marshaled_dispatch(req.read(), req.user) + response = self._marshaled_dispatch(req.read(), req) req.content_type = "text/xml" req.set_content_length(len(response)) |