SimpleSamlPHP SimpleSAML_Error_NoState:提高
SimpleSamlPHP SimpleSAML_Error_NoState: NOSTATE
我在本地计算机上安装了 SimpleSAMLPHP,所以我构建了 2 个虚拟主机:
<VirtualHost auth.saml.net>
ServerAdmin toto@gmail.com
ServerName auth.saml.net
AddDefaultCharset UTF-8
Alias /simplesaml c:/wamp/www/Idp/simplesamlphp/www/
<Directory c:/wamp/www/Idp/simplesamlphp/www/ >
Order Deny,Allow
Allow from all
</Directory>
</VirtualHost>
<VirtualHost client.saml.net>
ServerAdmin toto@gmail.com
ServerName client.saml.net
AddDefaultCharset UTF-8
Alias /simplesaml c:/wamp/www/Sp/simplesamlphp/www/
<Directory c:/wamp/www/Sp/simplesamlphp/www/ >
Order Deny,Allow
Allow from all
</Directory>
</VirtualHost>
第一个用于我的身份提供者,第二个用于我的服务提供者。
但是当我尝试通过这种方式连接到我的身份提供者时:
require_once('../../Sp/simplesamlphp/lib/_autoload.php');
$authService = new SimpleSAML_Auth_Simple("default-sp");
$authService->requireAuth();
我有这个错误:
SimpleSAML_Error_NoState: NOSTATE
Backtrace:
2 C:\wamp\www\Sp\simplesamlphp\lib\SimpleSAML\Auth\State.php:225 (SimpleSAML_Auth_State::loadState)
1 C:\wamp\www\Sp\simplesamlphp\modules\saml\www\sp\saml2-acs.php:63 (require)
0 C:\wamp\www\Sp\simplesamlphp\www\module.php:134 (N/A)
我在某些论坛上看到,在那种情况下我必须在文件 config/config.php 中替换:
'store.type' => 'phpsession',
作者:
'store.type' => 'sql',
所以我在服务提供商和身份提供商的文件中替换了 :
'store.type' => 'sql',
'store.sql.dsn' => 'mysql:host=localhost;dbname=test',
'store.sql.username' => 'root',
'store.sql.password' => '',
'store.sql.prefix' => 'simpleSAMLphp',
我有一些数据到达我的数据库,但我仍然有同样的错误。
奇怪的是,当我尝试在服务提供商平台上直接将我连接到身份提供商时,我没有遇到此错误。
我找到了解决方案,这是一个小白痴。
当我尝试通过这种方式连接到服务提供商时:
require_once('../../Sp/simplesamlphp/lib/_autoload.php');
$authService = new SimpleSAML_Auth_Simple("default-sp");
$authService->requireAuth();
我在我的本地主机上,而不是在我的服务提供商 (client.saml.net) 上,所以我只需要将我的文件移动到路径 /Sp/simplesamlphp/www/ 并更改第一行,现在它可以工作了。
我 运行 遇到了同样的问题,就我而言,我在与您相同的域中拥有 IDP 和 SP。我发现,IDP 和 SP 在 config/config.php.
中的 session.phpsession.cookiename
应该有不同的值
我在本地计算机上安装了 SimpleSAMLPHP,所以我构建了 2 个虚拟主机:
<VirtualHost auth.saml.net>
ServerAdmin toto@gmail.com
ServerName auth.saml.net
AddDefaultCharset UTF-8
Alias /simplesaml c:/wamp/www/Idp/simplesamlphp/www/
<Directory c:/wamp/www/Idp/simplesamlphp/www/ >
Order Deny,Allow
Allow from all
</Directory>
</VirtualHost>
<VirtualHost client.saml.net>
ServerAdmin toto@gmail.com
ServerName client.saml.net
AddDefaultCharset UTF-8
Alias /simplesaml c:/wamp/www/Sp/simplesamlphp/www/
<Directory c:/wamp/www/Sp/simplesamlphp/www/ >
Order Deny,Allow
Allow from all
</Directory>
</VirtualHost>
第一个用于我的身份提供者,第二个用于我的服务提供者。
但是当我尝试通过这种方式连接到我的身份提供者时:
require_once('../../Sp/simplesamlphp/lib/_autoload.php');
$authService = new SimpleSAML_Auth_Simple("default-sp");
$authService->requireAuth();
我有这个错误:
SimpleSAML_Error_NoState: NOSTATE
Backtrace:
2 C:\wamp\www\Sp\simplesamlphp\lib\SimpleSAML\Auth\State.php:225 (SimpleSAML_Auth_State::loadState)
1 C:\wamp\www\Sp\simplesamlphp\modules\saml\www\sp\saml2-acs.php:63 (require)
0 C:\wamp\www\Sp\simplesamlphp\www\module.php:134 (N/A)
我在某些论坛上看到,在那种情况下我必须在文件 config/config.php 中替换:
'store.type' => 'phpsession',
作者:
'store.type' => 'sql',
所以我在服务提供商和身份提供商的文件中替换了 :
'store.type' => 'sql',
'store.sql.dsn' => 'mysql:host=localhost;dbname=test',
'store.sql.username' => 'root',
'store.sql.password' => '',
'store.sql.prefix' => 'simpleSAMLphp',
我有一些数据到达我的数据库,但我仍然有同样的错误。
奇怪的是,当我尝试在服务提供商平台上直接将我连接到身份提供商时,我没有遇到此错误。
我找到了解决方案,这是一个小白痴。
当我尝试通过这种方式连接到服务提供商时:
require_once('../../Sp/simplesamlphp/lib/_autoload.php');
$authService = new SimpleSAML_Auth_Simple("default-sp");
$authService->requireAuth();
我在我的本地主机上,而不是在我的服务提供商 (client.saml.net) 上,所以我只需要将我的文件移动到路径 /Sp/simplesamlphp/www/ 并更改第一行,现在它可以工作了。
我 运行 遇到了同样的问题,就我而言,我在与您相同的域中拥有 IDP 和 SP。我发现,IDP 和 SP 在 config/config.php.
中的session.phpsession.cookiename
应该有不同的值