Bonjour à tous,
J'apprends actuellement à utiliser les systèmes de sécurité de Symfony2, et je bloque actuellement au niveau de l'authentification via une base de donnée.
Je me suis créé une table dans phpMyAdmin avec simplement les champs username, password, salt, roles, que j'ai rempli :
Ensuite j'ai édité mon security.yml :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 INSERT INTO `user` (`id`, `username`, `password`, `salt`, `roles`) VALUES (1, 'bobby4078', 'test', '', ''), (2, 'damien', 'test', '', ''), (3, 'thomas', 'test', '', '');
Et voici mon entité :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 jms_security_extra: secure_all_services: false expressions: true security: encoders: Symfony\Component\Security\Core\User\User: plaintext Rtf\UserBundle\Entity\User: plaintext role_hierarchy: ROLE_ADMIN: ROLE_USER ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH] providers: in_memory: memory: users: user: { password: userpass, roles: [ 'ROLE_USER' ] } admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] } main: entity: { class: RtfUserBundle:User, property: username } firewalls: dev: pattern: ^/(_(profiler|wdt)|css|images|js)/ security: false main: pattern: ^/ anonymous: true provider: main form_login: login_path: login check_path: login_check logout: path: logout target: / access_control: #- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https } #- { path: ^/_internal/secure, roles: IS_AUTHENTICATED_ANONYMOUSLY, ip: 127.0.0.1 }
Pour moi rien de compliqué, mais cela ne fonctionne pas. Lorsque je tente de m'identifier, je vois dans la barre d'outils de symfony2 que je suis identifié en tant que "anon" (anonyme). C'est comme si il n'allait pas lire dans ma BDD...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160 namespace Rtf\UserBundle\Entity; use Doctrine\ORM\Mapping as ORM; use Symfony\Component\Security\Core\User\UserInterface; /** * User * * @ORM\Table() * @ORM\Entity(repositoryClass="Rtf\UserBundle\Entity\UserRepository") */ class User implements UserInterface { /** * @var integer * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ private $id; /** * @var string * * @ORM\Column(name="username", type="string", length=255, unique=true) */ private $username; /** * @var string * * @ORM\Column(name="password", type="string", length=255) */ private $password; /** * @var string * * @ORM\Column(name="salt", type="string", length=255) */ private $salt; /** * @var array * * @ORM\Column(name="roles", type="array") */ private $roles; public function _construct(){ $this->roles = array(); } /** * Get id * * @return integer */ public function getId() { return $this->id; } /** * Set nom * * @param string $nom * @return User */ public function setUsername($username) { $this->username = $username; return $this; } /** * Get nom * * @return string */ public function getUsername() { return $this->username; } /** * Set password * * @param string $password * @return User */ public function setPassword($password) { $this->password = $password; return $this; } /** * Get password * * @return string */ public function getPassword() { return $this->password; } /** * Set salt * * @param string $salt * @return User */ public function setSalt($salt) { $this->salt = $salt; return $this; } /** * Get salt * * @return string */ public function getSalt() { return $this->salt; } /** * Set roles * * @param array $roles * @return User */ public function setRoles($roles) { $this->roles = $roles; return $this; } /** * Get roles * * @return array */ public function getRoles() { return $this->roles; } public function eraseCredentials(){ } }
Je ne sais pas par où commencer à chercher l'erreur... donc si quelqu'un à une idée, je l'écoute !
Merci
Partager