2017-01-29 2 views
0

Für eine Testumgebung, ich habe eine .ldif Datei mit dem ben Benutzer zu gewähren, die ADMIN Rolle, da diese Rolle von meiner Frühling Sicherheit configuation erforderlich ist: .hasRole("ADMIN").anyRequest(). HierGewährung einer ADMIN Rolle an einen Benutzer in einer LDIF-Datei

ist die .ldif Dateiinhalt:

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 

Die Testumgebung Spring Security-Konfiguration ist die folgende:

Es gibt ein paar Beobachtungen:

1- Der Test ist erfolgreich und der Benutzer ist authentifiziert und akkreditiert als Administrator.

2- Wenn statt der Rollenakkreditierung als .hasRole("ADMIN").anyRequest() ich mache es als dann die Benutzerrolle im Test gegeben wird nicht akzeptiert und der Test schlägt mit einem 403 (nicht ein 401) bei der Authentifizierung.

3- Der Fall scheint nicht in der .ldif Datei an der Materie als die admin Gruppe als adMIN geschrieben werden kann und ADMin und der Test ist nach wie vor erfolgreich.

4- Ersetzen der admin Gruppe durch eine user Gruppe für den Benutzer, macht den Test mit einem 403 ausfällt, das heißt, der Benutzer eine Admin-Rolle erfordert angemeldet sein.

dn: cn=user,ou=groups,dc=springframework,dc=org 
objectclass: top 
objectclass: groupOfNames 
cn: user 
uniqueMember: uid=ben,ou=people,dc=springframework,dc=org 

Wie kommt die Fall keine Rolle spielt in der .ldif Datei und Angelegenheiten im configure Methode?

Antwort

0

Per Directory Server-Schema (das sind die definierten Attribute und Objektklassen) werden die Attribute zum Erstellen des Distinguished Name (DN) des Gruppeneintrags als case-ignore (DN "spec" https://tools.ietf.org/html/rfc4514) definiert.

Persönlich würde ich es als einen Fehler betrachten, dass die hasRole (..) passt auf eine Groß-und Kleinschreibung. Aber ich denke, dies der Fall ist, weil die DefaultLdapAuthoritiesPopulator standardmäßig convertToUpperCase-wahr

Verwandte Themen