From 059a90702e454b99490031bd37541304e65d35d2 Mon Sep 17 00:00:00 2001 From: John Dennis Date: Sun, 19 Feb 2012 10:02:38 -0500 Subject: Implement session activity timeout Previously sessions expired after session_auth_duration had elapsed commencing from the start of the session. We new support a "rolling" expiration where the expiration is advanced by session_auth_duration everytime the session is accessed, this is equivalent to a inactivity timeout. The expiration is still constrained by the credential expiration in all cases. The session expiration behavior is configurable based on the session_auth_duration_type. * Reduced the default session_auth_duration from 1 hour to 20 minutes. * Replaced the sesssion write_timestamp with the access_timestamp and update the access_timestamp whenever the session data is created, retrieved, or written. * Modify set_session_expiration_time to handle both an inactivity timeout and a fixed duration. * Introduce KerberosSession as a mixin class to share session duration functionality with all classes manipulating session data with Kerberos auth. This is both the non-RPC login class and the RPC classes. * Update make-lint to handle new classes. * Added session_auth_duration_type config item. * Updated default.conf.5 man page for new session_auth_duration_type item. * Removed these unused config items: mount_xmlserver, mount_jsonserver, webui_assets_dir https://fedorahosted.org/freeipa/ticket/2392 --- ipa-client/man/default.conf.5 | 3 ++ ipalib/constants.py | 9 ++-- ipalib/krb_utils.py | 2 +- ipalib/session.py | 83 ++++++++++++++++++++++++++++--------- ipaserver/rpcserver.py | 96 ++++++++++++++++++++++++++++++++----------- make-lint | 1 + 6 files changed, 144 insertions(+), 50 deletions(-) diff --git a/ipa-client/man/default.conf.5 b/ipa-client/man/default.conf.5 index 91b535ab8..ba9b1250d 100644 --- a/ipa-client/man/default.conf.5 +++ b/ipa-client/man/default.conf.5 @@ -169,6 +169,9 @@ Specifies the URI of the XML\-RPC server for a client. This is used by IPA and s .B session_auth_duration