Я работаю над интеграцией аутентификации LDAP в моем проекте. и я следил за учебником на официальном сайте CakePHP, который описывает, как создать пользовательский объект в пути src-приложения и использовать эти пользовательские объекты в AuthController.CakePHP 3 Проверка подлинности Ldap и уточнение
Итак, я создал папку под названием Auth in src с именем файла LdapAuthorize.php. Путь выглядит следующим образом SRC/Auth/LdapAuthorize.php
Вот мой LdapAuthorize.php код:
namespace App\Auth;
use Cake\Auth\BaseAuthorize;
use Cake\Network\Request;
class LdapAuthorize extends BaseAuthorize {
public function authorize($user, Request $request) {
if ($user == 'username') { // where username is logged on ldap user on a computer.
return true;
}
}
}
Я также назвал объект в AppController.php файле. Вот мой код:
public function initialize()
{
parent::initialize();
$this->loadComponent('Flash');
$this->loadComponent('Auth', [
'loginRedirect' => [
'controller' => 'Customers',
'action' => 'index'
],
'logoutRedirect' => [
'controller' => 'Pages',
'action' => 'display',
'home'
]
]);
$this->Auth->config('authenticate', [
'Ldap'
]);
}
Так что, когда я получить доступ к URL http://localhost/AppPath/Dashboard/index я получаю Authentication adapter "Ldap" was not found.
Поскольку это мой первый опыт работы с CakePHP, я не мог найти, что многие интернет-решения, которые помогут устранить любые проблемы.
Добавление дополнительного кода для LdapAuthenticate.php:
namespace App\Auth;
use Cake\Auth\BaseAuthenticate;
use Cake\Network\Request;
use Cake\Network\Response;
class OpenidAuthenticate extends BaseAuthenticate
{
public function authenticate(Request $request, Response $response)
{
$users = ["john", "ray"];
return $users;
}
}
я вижу. Я также добавил пользовательский адаптер аутентификации в свой проект, в котором я создал массив со списком пользователей для возврата. Я все еще получаю «Адаптер аутентификации» Ldap «не найден». Поэтому я также попробовал '$ this-> Auth-> config ('authenticate', ['App \ Auth \ Ldap']);' Не уверен, что еще я отсутствует. – Ray
@Ray Создал ли файл 'src/Auth/LdapAuthenticate.php' код в своем ответе? Я не знаю, работает ли 'App \ Auth \ Ldap' для параметра' authenticate', вы должны попробовать с помощью простого 'Ldap'. Я не понимаю, что вы подразумеваете под «Я создал массив со списком пользователей для возврата»? Если у вас есть что-то еще в вашем проекте, добавьте его в свой вопрос с подробной информацией. – Holt
Да, я создал файл в 'src/Auth/LdapAuthenticate.php' с указанным выше кодом. Я включаю это в мой вопрос, который я опубликовал ранее. В LdapAuthenticate я создал массив с пользователями, которым разрешено входить в систему, поэтому я могу работать с исходным компонентом, прежде чем начинать писать PHP-код, связанный с LDAP, для подключения к каталогу Activie. Нужно ли также вносить какие-либо изменения в маршрутизацию? – Ray