Hola.
Con este security.yml, cuando no es un usuario me indica "Credenciales no validas":
Código PHP:
# To get started with security, check out the documentation:
# http://symfony.com/doc/current/book/security.html
security:
firewalls:
main:
anonymous: ~
form_login:
login_path: /login
check_path: /login
# disables authentication for assets and the profiler, adapt it according to your needs
# dev:
# pattern: ^/(_(profiler|wdt)|css|images|js)/
# security: false
# login:
# pattern: ^/login$
# security: false
# secured_area:
# pattern: ^/
# anonymous: ~
# provider: our_db_provider
# form_login:
# login_path: /login
# check_path: /login
# logout:
# path: user_logout
# target: /
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, roles: ROLE_ADMIN }
providers:
our_db_provider:
entity:
class: userBundle:User
property: username
# if you're using multiple entity managers
# manager_name: customer
encoders:
inventariouserBundleEntityUser:
algorithm: bcrypt
cost: 12
Parece que por ahora funciona.
Ahora, cuando el usuario y contraseña son correctos y del tipo ROLE_ADMIN me daba un error :
Código PHP:
Catchable Fatal Error: Argument 4 passed to SymfonyComponentSecurityCoreAuthenticationTokenUsernamePasswordToken::__construct() must be of the type array, string given, called in /home/ubuntu/workspace/vendor/symfony/symfony/src/Symfony/Component/Security/Core/Authentication/Provider/UserAuthenticationProvider.php on line 96 and defined
Código PHP:
*
* @throws InvalidArgumentException
*/
public function __construct($user, $credentials, $providerKey, array $roles = array())
{
parent::__construct($roles);
He visto que si pongo
Código PHP:
public function getRoles()
{
return array('ROLE_ADMIN');
}
Como recomiendan en algunas paginas, se autentifica pero creo que todos los usuarios son ADMIN.
Si pongo, como es lo mas normal:
Código PHP:
public function getRoles()
{
return $this->role;
}
Me da el mismo error.
Esta claro que hay que devolver un array como indica el error, pero ¿Como le mando el tipo de usuario que contiene el atributo role en formato array?
Otra cosa, con el DefaultController del ejemplo, que me indica "hhs", ya no me da el error
"undefined method named "getRequest" ",¿ pero ahora como lo redirijo a una pagina si es ADMIN y otra si es USER?
Saludos y gracias, Luis.