我正在使用subfission/cas作为我的申请。我跟着所有的installation steps。我正在使用Windows,如果这很重要。更准确地说,我已经配置了以下内容:
我在终端上运行了以下内容
composer require "subfission/cas" "dev-master"
我相应地配置了我的Kernel.php,添加了以下内容:
'cas.auth' => 'Subfission\Cas\Middleware\CASAuth',
'cas.guest' => 'Subfission\Cas\Middleware\RedirectCASAuthenticated',
我运行了以下命令:
php artisan vendor:publish
我还在cas.php配置文件中设置了我的cas服务器:
'cas_hostname' => env('CAS_HOSTNAME', 'cas.myserver.me'),
'cas_real_hosts' => env('CAS_REAL_HOSTS', 'cas.myserver.me'),
我想要的是我所有路线的中间件,所以我在路线中添加了以下路线规则:
Route::middleware(['cas.auth'])->group(function ()
{
Route::get('/', function ()
{
return view('welcome');
});
});
基本上,每当我访问主页面时,我都希望将未登录的所有人重定向到登录页面(现在,我将来会添加更多路由)。当用户未登录时,会将用户重定向到登录页面,但在登录后我收到以下错误:
ErrorException(E_WARNING)DOMDocument :: loadXML():打开和结束标记不匹配:hr行1和实体中的主体,行:1
无论我将用户重定向到哪个视图。我尝试了默认的欢迎页面以及一个空视图,但我仍然得到同样的错误。
编辑:我已经使用subfission / cas的dev-master分支出现上述错误,切换到2.1.1后,我得到了一个不同的错误:
session_name():标头已发送时无法更改会话名称
编辑2:我做了一些挖掘,并在我的cas客户端类中启用了内部错误:
libxml_use_internal_errors(true);
现在我得到以下内容:
Authentication failure: SA not validated Reason: bad response from the CAS server
我设法通过在cas配置文件中禁用SAML来解决问题:
'cas_enable_saml' => env('CAS_ENABLE_SAML', true),
改成
cas_enable_saml' => env('CAS_ENABLE_SAML', false),