我正在尝试使用基于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
有没有人有任何想法会出现什么问题?我已经尝试了这个错误消息的常规修复(调整cookie在php.ini中分配的域等)。没有快乐。
答案 0 :(得分:4)
这似乎是simpleSAMLphp和CMSMS之间冲突的会话管理。
一个简单的方法是安装memcached,并在simplesamlphp中使用memcache会话处理程序而不是php会话处理程序。
答案 1 :(得分:0)
类似的会话冲突也与eZ发布(4.x)和Symfony2(2.3+)有关。 SQL会话存储解决了这个问题