Estoy trabajando en un proyecto de CakePHP y actualmente estoy creando la parte de autenticación del usuario. El problema es que mi información de autenticación (es decir, las contraseñas) no está almacenada en mi base de datos: la fuente de autenticación es LDAP, pero mi pregunta se aplica por igual a cualquier fuente que no sea de base de datos.Fuentes de autenticación alternativas en CakePHP (LDAP)
Parece que Cake solo maneja las contraseñas cuando existen en la base de datos local. The Cake Cookbook suggests que puede indicarle un controlador/modelo/objeto diferente para proporcionar un procedimiento de autorización utilizando la variable $this->Auth->authorize
; sin embargo, al mirar el código (específicamente the Auth::startup()
function), parece que Cake siempre intentará consultar la base de datos primero, buscando un nombre de usuario/contraseña coincidente, antes de mirar el objeto alternativo que especificó con Auth->authorize
. Es decir, cambiar authorize
solo agrega un filtro de segundo nivel, no reemplaza la búsqueda de la base de datos.
// The process
1. User provides details
2. Cake checks the database
3. If OK, then check the custom object method
4. If OK, return true
// What I'd like:
1. User provides details.
2. Check the custom object method
3. If OK, return true
4. Profit.
Cualquier ideas sobre cómo hacer esto, es de esperar sin cortar los archivos del núcleo?
+1 por Profit ... – Stephen