diff --git a/config-templates/config.php b/config-templates/config.php index 2b80c424db377f1efa7bab315097d9670965eba7..4c2cc0af533fb0ff3dfcf886eafa975b89e56abb 100644 --- a/config-templates/config.php +++ b/config-templates/config.php @@ -123,8 +123,12 @@ $config = array ( 'session.duration' => 8 * (60*60), // 8 hours. 'session.requestcache' => 4 * (60*60), // 4 hours + /* + * Options to override the default settings for php sessions. + */ 'session.phpsession.cookiename' => null, 'session.phpsession.limitedpath' => false, + 'session.phpsession.savepath' => null, /* * Languages available and what language is default diff --git a/lib/SimpleSAML/SessionHandlerPHP.php b/lib/SimpleSAML/SessionHandlerPHP.php index d3a96f5c81f3013ac36951508f50f687f4debdc0..70a20f47ef5e1cab521a3ca47785d7d77ded64b3 100644 --- a/lib/SimpleSAML/SessionHandlerPHP.php +++ b/lib/SimpleSAML/SessionHandlerPHP.php @@ -41,6 +41,11 @@ class SimpleSAML_SessionHandlerPHP extends SimpleSAML_SessionHandler { $cookiename = $config->getValue('session.phpsession.cookiename', NULL); if (!empty($cookiename)) session_name($cookiename); + $savepath = $config->getValue('session.phpsession.savepath', NULL); + if(!empty($savepath)) { + session_save_path($savepath); + } + if(!array_key_exists(session_name(), $_COOKIE)) { /* Session cookie unset - session id not set. Generate new (secure) session id. */ session_id(SimpleSAML_Utilities::stringToHex(SimpleSAML_Utilities::generateRandomBytes(16)));