Я работаю над интеграцией аутентификации LDAP в свой проект. и я следовал руководству с официального сайта CakePHP, в котором рассказывается, как создать настраиваемый объект в пути src приложения и использовать эти настраиваемые объекты в AuthController.
Поэтому я создал папку Auth в 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;
}
}