Pour un environnement de test, j'ai un fichier .ldif
à accorder à l'utilisateur ben
, le rôle ADMIN
, que ce rôle est tenu par ma sécurité Spring configuation: .hasRole("ADMIN").anyRequest()
.L'octroi d'un rôle d'administrateur à un utilisateur dans un fichier LDIF
Voici le contenu du fichier .ldif
:
dn: ou=groups,dc=springframework,dc=org
objectclass: top
objectclass: organizationalUnit
ou: groups
dn: ou=people,dc=springframework,dc=org
objectclass: top
objectclass: organizationalUnit
ou: people
dn: uid=ben,ou=people,dc=springframework,dc=org
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
cn: Ben LeHeros
sn: Ben
uid: ben
userPassword: {SHA}nFCebWjxfaLbHHG1Qk5UU4trbvQ=
dn: uid=toto,ou=people,dc=springframework,dc=org
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
cn: Toto LeHeros
sn: Toto
uid: toto
userPassword: totopass
dn: cn=adMIN,ou=groups,dc=springframework,dc=org
objectclass: top
objectclass: groupOfNames
cn: ADMin
uniqueMember: uid=ben,ou=people,dc=springframework,dc=org
dn: cn=user,ou=groups,dc=baeldung,dc=com
objectclass: top
objectclass: groupOfNames
cn: user
member: uid=toto,ou=people,dc=springframework,dc=org
L'environnement de test configuration Spring Security est la suivante:
Il y a quelques observations:
1- Le test est réussie et l'utilisateur est authentifié et accrédité comme ayant le rôle d'administrateur. 2- Si au lieu de configurer l'accréditation de rôle comme .hasRole("ADMIN").anyRequest()
je le fais comme .hasRole("admin").anyRequest()
alors le rôle d'utilisateur donné dans le test n'est pas accepté et le test échoue avec un 403 (pas un 401) lors de l'authentification.
3- Le cas ne semble pas à la matière dans le fichier .ldif
que le groupe admin
peut être écrit comme adMIN
et ADMin
et le test est toujours un succès.
4- Remplacement du groupe admin
par un groupe user
pour l'utilisateur, fait le test échoue avec un 403, qui est, l'utilisateur a besoin d'un rôle d'administrateur être connecté.
dn: cn=user,ou=groups,dc=springframework,dc=org
objectclass: top
objectclass: groupOfNames
cn: user
uniqueMember: uid=ben,ou=people,dc=springframework,dc=org
Comment se fait la cas n'a pas d'importance dans le fichier .ldif
et des questions dans la méthode configure
?