Foros del Web » Programando para Internet » PHP » Symfony »

check Autentication con annotattion

Estas en el tema de check Autentication con annotattion en el foro de Symfony en Foros del Web. EStoy haciendo la seguridad de un proyect, pero cuando uso la autenticacion de symfony me dice que no reconoce la url, entonces hice un metodo ...
  #1 (permalink)  
Antiguo 18/08/2014, 13:05
Avatar de witchy  
Fecha de Ingreso: junio-2014
Mensajes: 44
Antigüedad: 9 años, 10 meses
Puntos: 0
Pregunta check Autentication con annotattion

EStoy haciendo la seguridad de un proyect, pero cuando uso la autenticacion de symfony me dice que no reconoce la url, entonces hice un metodo checkAutenticationAction pero me doi cuenta que no me valida el password y me habre sesion con cualquier password.

Código PHP:
Ver original
  1. $username = $this->get('request')->get('_username');
  2.         $password = $this->get('request')->get('_password');
  3.  
  4.         $em = $this->getDoctrine()->getManager();
  5.  
  6.         $usuario = //obtengo el usuario
  7.  
  8.         if (!$usuario) {
  9.  
  10.             throw $this->createNotFoundException('Lo sentimos su usuario o contraseña no son correctos.');
  11.  
  12.         }
  13.  
  14.         $token=new UsernamePasswordToken($usuario, false, 'secured_area', $usuario->getAllRoles());
  15.         $this->get('session')->set('_security_secured_area', serialize($token));
  16.         $this->container->get('security.context')->setToken($token);
  17.  
  18.         return array();
  #2 (permalink)  
Antiguo 18/08/2014, 13:24
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: check Autentication con annotattion

La recomendación es que leas la documentación:
http://symfony.com/doc/current/book/security.html
http://symfony.com/doc/current/cookb...enticator.html
http://symfony.com/doc/current/cookb..._provider.html
http://symfony.com/doc/current/compo...ity/index.html
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 18/08/2014, 14:25
Avatar de witchy  
Fecha de Ingreso: junio-2014
Mensajes: 44
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: check Autentication con annotattion

Hola ya funciona, pero me dice que el usuario no esta autenticado, me reconoce el nombre de usuario y el rol pero en Authenticated? me pone no.

y en los errores me pone este rol que es como si no encontrara el inverseBy

direccion de mi clase usuario

The field Sindicato\GestionBundle\Entity\Usuario#grupoid is on the owning side of a bi-directional relationship, but the specified mappedBy association on the target-entity Sindicato\GestionBundle\Entity\Grupo# does not contain the required 'inversedBy' attribute.
  #4 (permalink)  
Antiguo 18/08/2014, 15:51
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: check Autentication con annotattion

Cita:
The field Sindicato\GestionBundle\Entity\Usuario#grupoid is on the owning side of a bi-directional relationship, but the specified mappedBy association on the target-entity Sindicato\GestionBundle\Entity\Grupo# does not contain the required 'inversedBy' attribute.
Lo que te quiere decir el error es que a la entidad Grupo no contiene el inversedBy que debe de tener en una relación bidireccional en la notación ManyToMany ManyToOne.
Revisa tus entidades
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #5 (permalink)  
Antiguo 19/08/2014, 10:09
Avatar de witchy  
Fecha de Ingreso: junio-2014
Mensajes: 44
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: check Autentication con annotattion

Hola y muchisimas gracias en la clase grupo tengo esto

Código PHP:
Ver original
  1. /**
  2.      * @var \Doctrine\Common\Collections\Collection
  3.      *
  4.      * @ORM\ManyToMany(targetEntity="Usuario", inversedBy="grupoid")
  5.      * @ORM\JoinTable(name="usuario_grupo",
  6.      *   joinColumns={
  7.      *     @ORM\JoinColumn(name="grupoid", referencedColumnName="id")
  8.      *   },
  9.      *   inverseJoinColumns={
  10.      *     @ORM\JoinColumn(name="usuarioid", referencedColumnName="id")
  11.      *   }
  12.      * )
  13.      */
  14.     private $usuarioid;

y en la clase usuario:

Código PHP:
Ver original
  1. /**
  2.      * @var \Doctrine\Common\Collections\Collection
  3.      *
  4.      * @ORM\ManyToMany(targetEntity="Grupo", inversedBy="usuarioid")
  5.      * @ORM\JoinTable(name="usuario_grupo",
  6.      *   joinColumns={
  7.      *     @ORM\JoinColumn(name="usuarioid", referencedColumnName="id")
  8.      *   },
  9.      *   inverseJoinColumns={
  10.      *     @ORM\JoinColumn(name="grupoid", referencedColumnName="id")
  11.      *   }
  12.      * )
  13.      */
  14.     private $grupoid;
  #6 (permalink)  
Antiguo 20/08/2014, 10:54
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: check Autentication con annotattion

Tienes problema con la forma en la que estas relacionando la entidad Usuario y Grupo el targetEntity los estas haciendo hacia ellas mismas en los dos casos. Prueba con lo siguiente.
Código PHP:
Ver original
  1. //Entidad Usuario
  2.  * @ORM\ManyToMany(targetEntity="Grupo", inversedBy="grupoid")
  3. //Entidad grupo
  4.  * @ORM\ManyToMany(targetEntity="Usuario", inversedBy="usuarioid")
Despues de hacer el cambio actualiza el esquema.

Te aconsejo que leas la documentación para el tema de asociaciones: http://docs.doctrine-project.org/en/...-bidirectional
en los ejemplos viene como queda el esquema con cada relación.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:33.