0

SAML2.0ベースのユーザーIDシステムを使用して、クライアント用のサービスプロバイダー(SP)サイトを構築しようとしています。

サーバーに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

誰かが何がうまくいかない可能性があるかについて何か考えを持っていますか?このエラーメッセージの通常の修正を試しました(php.iniなどでCookieが割り当てられているドメインを調整します)。喜びはありません。

4

2 に答える 2

4

これは、simpleSAMLphpとCMSMSの間で競合するセッション管理のようです。

これを回避する簡単な方法は、memcachedをインストールし、simplesamlphpのphpセッションハンドラーの代わりにmemcacheセッションハンドラーを使用することです。

于 2012-11-08T06:15:12.127 に答える
0

同様のセッションの競合は、eZpublish(4.x)およびSymfony2(2.3+)でも発生します。SQLセッションストレージはその問題を解決します

于 2012-12-13T12:21:30.943 に答える