Попытка настроить CAS с моим проектом Laravel - PullRequest
0 голосов
/ 23 апреля 2019

Я использую subfission / cas для моего заявления. Я выполнил все шаги установки . Я использую 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 в своем файле конфигурации cas.php:

'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 и тело в Entity, строка: 1

Независимо от того, на какой вид я перенаправляю пользователя. Я пробовал страницу приветствия по умолчанию, а также пустое представление, но все равно получаю ту же ошибку.

РЕДАКТИРОВАТЬ: я использовал ветку dev-master из subfission / cas для вышеуказанной ошибки, и после перехода на 2.1.1 я получаю другую ошибку:

session_name (): невозможно изменить имя сеанса, когда заголовки уже отправлены

РЕДАКТИРОВАТЬ 2: Я сделал еще несколько копаний и включил внутренние ошибки в моем классе клиента клиента с:

libxml_use_internal_errors(true);

И теперь я получаю следующее:

Authentication failure: SA not validated Reason: bad response from the CAS server

И ответ cas: Cas error Дело в том, что я использую один и тот же сервер cas для двух других проектов, и он хорошо работает для них (но это не проекты Laravel.

1 Ответ

1 голос
/ 24 апреля 2019

Мне удалось решить проблему, отключив SAML в файле конфигурации cas:

'cas_enable_saml'     => env('CAS_ENABLE_SAML', true),

изменить на

cas_enable_saml'     => env('CAS_ENABLE_SAML', false),
...