Commit 413b6c248b7be566ae65e9ab4fdf35f640d58f3b

Authored by Neil Blakey-Milner
1 parent 051bf8c4

KTS-808: Session IP tracking defaults to off, configurable using

session/ipTracking configuration variable.


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@5245 c91229c3-7414-0410-bfa2-8a42b809f60b
config/config.ini
@@ -141,6 +141,8 @@ uiUrl = ${rootUrl}/presentation/lookAndFeel/knowledgeTree @@ -141,6 +141,8 @@ uiUrl = ${rootUrl}/presentation/lookAndFeel/knowledgeTree
141 ; session timeout (in seconds) 141 ; session timeout (in seconds)
142 sessionTimeout = 1200 142 sessionTimeout = 1200
143 allowAnonymousLogin = true 143 allowAnonymousLogin = true
  144 +; Set to true to force sessions to come from the same IP address
  145 +; ipTracking = false
144 146
145 [import] 147 [import]
146 ; unzip command - will use execSearchPath to find if the path to the 148 ; unzip command - will use execSearchPath to find if the path to the
lib/session/Session.inc
@@ -159,18 +159,17 @@ class Session { @@ -159,18 +159,17 @@ class Session {
159 $iUserID = $aRow["user_id"]; 159 $iUserID = $aRow["user_id"];
160 160
161 $oKTConfig = KTConfig::getSingleton(); 161 $oKTConfig = KTConfig::getSingleton();
162 - $allowAnon = $oKTConfig->get('allowAnonymousLogin', false); 162 + $allowAnon = $oKTConfig->get('session/allowAnonymousLogin', false);
163 $ANON = -2; 163 $ANON = -2;
164 - if ((!allowAnon) && ($iUserId == $ANON)) { return false; }  
165 - 164 + if ((!$allowAnon) && ($iUserId == $ANON)) { return false; }
  165 +
  166 + $ipTracking = $oKTConfig->get('session/ipTracking', false);
166 // check that ip matches 167 // check that ip matches
167 $ip = $this->getClientIP(); 168 $ip = $this->getClientIP();
168 - if ($ip != trim($aRow["ip"])) { 169 + if ($ipTracking && ($ip != trim($aRow["ip"]))) {
169 return PEAR::raiseError("You are coming from a different IP address than the session requires"); 170 return PEAR::raiseError("You are coming from a different IP address than the session requires");
170 - return false;  
171 } 171 }
172 172
173 -  
174 // now check if the timeout has been exceeded 173 // now check if the timeout has been exceeded
175 $lastused = $aRow["lastused"]; 174 $lastused = $aRow["lastused"];
176 $diff = time() - strtotime($lastused); 175 $diff = time() - strtotime($lastused);