summaryrefslogtreecommitdiffstats
path: root/ipaserver
diff options
context:
space:
mode:
authorPetr Viktorin <pviktori@redhat.com>2013-04-15 16:41:25 +0200
committerPetr Viktorin <pviktori@redhat.com>2013-11-26 16:59:59 +0100
commit6839d8334ead3613068c5a031b32d7dd34219a9f (patch)
tree1eaba9d42280801dfb20e7adc859be1ddfd3a2e9 /ipaserver
parent1e836d2d0c8916f5b8a352cc8395048f1147554d (diff)
downloadfreeipa-6839d8334ead3613068c5a031b32d7dd34219a9f.tar.gz
freeipa-6839d8334ead3613068c5a031b32d7dd34219a9f.tar.xz
freeipa-6839d8334ead3613068c5a031b32d7dd34219a9f.zip
Make jsonserver_kerb start a cookie-based session
Part of the work for: https://fedorahosted.org/freeipa/ticket/3299
Diffstat (limited to 'ipaserver')
-rw-r--r--ipaserver/rpcserver.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/ipaserver/rpcserver.py b/ipaserver/rpcserver.py
index 49643059..e4be51d6 100644
--- a/ipaserver/rpcserver.py
+++ b/ipaserver/rpcserver.py
@@ -755,13 +755,18 @@ class jsonserver_session(jsonserver, KerberosSession):
return response
-class jsonserver_kerb(jsonserver):
+
+class jsonserver_kerb(jsonserver, KerberosSession):
"""
JSON RPC server protected with kerberos auth.
"""
key = '/json'
+ def _on_finalize(self):
+ super(jsonserver_kerb, self)._on_finalize()
+ self.kerb_session_on_finalize()
+
def __call__(self, environ, start_response):
'''
'''
@@ -777,6 +782,10 @@ class jsonserver_kerb(jsonserver):
try:
response = super(jsonserver_kerb, self).__call__(environ, start_response)
+ if (getattr(context, 'session_data', None) is None and
+ self.env.context != 'lite'):
+ self.finalize_kerberos_acquisition('jsonserver', user_ccache,
+ environ, start_response)
finally:
destroy_context()