2014-06-19 3 views
1

J'utilise l'authentification LDAP dans spring-security. Pour une raison quelconque, je n'ai pas de serveur LDAP et j'ai configuré mon spring-security.xml pour utiliser le fichier LDIF.Comment ajouter objectclass et attribut personnalisé au fichier LDIF?

J'ai besoin d'ajouter un attribut personnalisé, appelé type pour les utilisateurs. J'ai donc créé un objectclass et un attributetypes comme mentionné here.

Le fichier LDIF ressemble à:

dn: cn=subschemasubentry 
changetype: modify 
add: attributetypes 
attributetypes: (1.2.3.4.5.6.7 NAME 'type' DESC 'New attribute definition' 
EQUALITY caseIgnoreMatch SYNTAX '1.3.6.1.4.1.1466.115.121.1.15') 

dn: cn=subschemasubentry 
changetype: modify 
add: objectClasses 
objectClasses: (1.2.3.4.56789.1.0.200 NAME 'testUser' 
SUP (inetOrgPerson) STRUCTURAL 
MUST cn 
MAY type) 

dn: ou=users,dc=springframework,dc=org 
objectclass: top 
objectclass: organizationalUnit 
ou: users 

dn: uid=testuser1,ou=users,dc=springframework,dc=org 
objectclass: top 
objectclass: person 
objectclass: organizationalPerson 
objectclass: testUser 
mail: [email protected] 
cn: Some Name 
sn: someName 
uid: someId 
type: someType 
userPassword: pass1 

Cependant, cela ne fonctionne pas avec NameNotFoundException, lorsque je tente d'utiliser un appel REST (protégé par spring-security) avec l'erreur:

LDAP: error code 32 - NO_SUCH_OBJECT: 
... 
... 
Attempt to search under non-existant entry: ou=users,dc=springframework,dc=org]; 
nested exception is javax.naming.NameNotFoundException: 

Si je supprimez l'attribut personnalisé et la classe d'objet personnalisée, et modifiez les données utilisateur en objectclass: inetOrgPerson, cela fonctionne correctement.

Comment puis-je ajouter le objectclass et les attributs puis?

Répondre

2

J'essayais d'utiliser le schéma dans les fichiers LDIF, ce qui était faux. J'ai utilisé ApacheDS pour créer un nouveau schéma avec les attributs personnalisés et la classe d'objet personnalisée. Puis les a exportés vers LDIF. Le LDIF résultant a été ajouté au fichier LDIF utilisé pour la sécurité de printemps.

D'autre part, le printemps ne lit toujours pas les nouveaux attributs des entrées, même lorsqu'il lit les classes d'objets.

+0

Avez-vous enfin trouvé une solution? – Aure77

Questions connexes