Öffentliche Methoden | |
| hasValidToken ($suppressError=false) | |
| Gibt Gültigkeit des Session-Tokens zurück. | |
| init () | |
| Initialisiert Session-Token. | |
Geschützte Attribute | |
| $_hasValidToken = false | |
| bool, ob gültiges Token vorhanden ist | |
Definiert in Zeile 9 der Datei SessionToken.php.
| Dsao_Controller_Action_Helper_SessionToken::hasValidToken | ( | $ | suppressError = false |
) |
Gibt Gültigkeit des Session-Tokens zurück.
| $suppressError | bool, ob Fehlerausgabe unterdrückt werden soll |
Definiert in Zeile 23 der Datei SessionToken.php.
00024 { 00025 // Kein gültiges Token und keine Fehlerunterdrückung 00026 if (!$this->_hasValidToken && !$suppressError) 00027 { 00028 // Ohne Umschweife umleiten 00029 $this->getActionController()->forward('token','error', 'default'); 00030 } 00031 00032 return (bool) $this->_hasValidToken; 00033 }
| Dsao_Controller_Action_Helper_SessionToken::init | ( | ) |
Initialisiert Session-Token.
Die Methode prüft, ob ein Token in der Session vorhanden und gültig ist, sowie die Übereinstimmung des in der URL übergebenen Tokens. Ggf. wird ein neues Token generiert.
Definiert in Zeile 44 der Datei SessionToken.php.
Benutzt Dsao_Uri_Http::setToken().
00045 { 00046 // Falls Ajax-Anfrage vorliegt 00047 if ($this->getActionController()->isXmlHttpRequest()) 00048 { 00049 $this->_hasValidToken = true; 00050 00051 return; 00052 } 00053 00054 // Namensbereich 00055 $namespaceToken = new Zend_Session_Namespace('token'); 00056 00057 // Falls Token übergeben wurde und in Session vorhanden ist 00058 if ($this->getActionController()->getUri()->token && isset($namespaceToken->token)) 00059 { 00060 $this->_hasValidToken = 00061 ($this->getActionController()->getUri()->token == $namespaceToken->token); 00062 } 00063 00064 // Falls Token gültig oder noch weitere Aktionen ausgeführt werden sollen, 00065 // dieses nehmen 00066 if (isset($namespaceToken->valid) || !$this->getRequest()->isDispatched()) 00067 { 00068 Dsao_Uri_Http::setToken($namespaceToken->token); 00069 } 00070 // Ansonsten neues Token erstellen 00071 else 00072 { 00073 $namespaceToken->token = Dsao_Uri_Http::setToken(); 00074 $namespaceToken->valid = true; 00075 00076 // Anzahl Aufrufe, nach der Token ablaufen soll 00077 $expirationHops = (int) $this->getActionController()->getConfig() 00078 ->session->token->expiration->hops; 00079 00080 // Zeit, nach der Token ablaufen soll 00081 $expirationTime = (int) $this->getActionController()->getConfig() 00082 ->session->token->expiration->time; 00083 00084 // Zeit und Hops ungültig -> Hops auf 1 setzen 00085 if (!$expirationTime && !$expirationHops) 00086 { 00087 $expirationHops = 1; 00088 } 00089 // Falls Zeit gültig 00090 else if ($expirationTime > 0) 00091 { 00092 $namespaceToken->setExpirationSeconds($expirationTime, 'valid'); 00093 } 00094 00095 // Falls Hops gültig 00096 if ($expirationHops > 0) 00097 { 00098 $namespaceToken->setExpirationHops($expirationHops, 'valid'); 00099 } 00100 } 00101 }
1.5.7.1