2012-10-31 25 views
0

我正在嘗試爲使用基於SAML2.0的用戶ID系統的客戶端構建服務提供程序(SP)站點。將simpleSAMLphp(SAML 2.0)與CMS Made Simple(CMSMS)集成

我已經能夠在我的服務器上安裝simpleSAMLphp,並使用開放的IdP認證網絡進行測試 - 如果我只是創建需要對此IdP進行身份驗證的php文件,所有工作都正常。簡單地添加到任何頁面使其工作。

require_once('../simplesamlphp/lib/_autoload.php'); 
$auth = new SimpleSAML_Auth_Simple('default-sp'); 
$auth->requireAuth(); 
$attributes = $auth->getAttributes(); 

在CMSMS但是,如果我添加上述爲用戶自定義的Smarty標籤(包括PHP的常用方法),我得到一個「狀態丟失」的錯誤。我試着將它添加到頁面元數據(通過內容界面)以及頁面主體或模板頭部。

我總是得到:

State information lost 
State information lost, and no way to restart the request 

沒有人有任何想法可能是想錯了?我已經嘗試了這個錯誤消息的通常修復(調整Cookie分配給php.ini等的域)。沒有快樂。

回答

4

這似乎是simpleSAMLphp和CMSMS之間衝突的會話管理。

一個簡單的方法是安裝memcached,並使用memcache會話處理程序而不是simplesamlphp中的php會話處理程序。

+0

哇,來自Andreas自己的回答! :)我很榮幸!非常感謝您與SimpleSAMLphp的合作,這對我來說非常有幫助。根據你的建議,我將會話存儲數據調整爲另一種方法 - 實際上通過SQL,它已經解決了這個問題 - 非常感謝。 – Gideon

0

類似會話衝突也與躋(4.x版)和Symfony2的(2.3+)。 SQL會話存儲解決了這個問題