Ver Mensaje Individual
  #6 (permalink)  
Antiguo 19/04/2016, 13:20
mrmoon
 
Fecha de Ingreso: enero-2016
Mensajes: 15
Antigüedad: 8 años, 3 meses
Puntos: 0
Respuesta: Seguridad: Creando un login con tabla User

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: ^/loginrolesIS_AUTHENTICATED_ANONYMOUSLY }
        - { 
path: ^/, rolesROLE_ADMIN }     

    
providers:
        
our_db_provider:
            
entity:
                class: 
userBundle:User
                property
username
                
# if you're using multiple entity managers
                # manager_name: customer

       
        
    
encoders:
        
inventariouserBundleEntityUser:
            
algorithmbcrypt
            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 ErrorArgument 4 passed to SymfonyComponentSecurityCoreAuthenticationTokenUsernamePasswordToken::__construct() must be of the type array, string givencalled 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.