diff options
author | Petr Viktorin <pviktori@redhat.com> | 2013-04-15 16:41:25 +0200 |
---|---|---|
committer | Petr Viktorin <pviktori@redhat.com> | 2013-11-26 16:59:59 +0100 |
commit | 6839d8334ead3613068c5a031b32d7dd34219a9f (patch) | |
tree | 1eaba9d42280801dfb20e7adc859be1ddfd3a2e9 /ipaserver/rpcserver.py | |
parent | 1e836d2d0c8916f5b8a352cc8395048f1147554d (diff) | |
download | freeipa-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/rpcserver.py')
-rw-r--r-- | ipaserver/rpcserver.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/ipaserver/rpcserver.py b/ipaserver/rpcserver.py index 496430597..e4be51d64 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() |