Bonjour à tous,
Actuellement en cours de configuration de LemonLDAP::NG (Système de web-sso en Perl), j'ai un petit problème pour executer certaines macro en Perl.
En fait, le système récupère certaines valeurs d'attributs d'un annuaire LDAP pour les transformer en variables de session et j'ai besoin d'executer des macros afin de traiter certaines valeurs multivaluées.
Par exemple, je stocke les profils d'un utilisateur à une application dans des attributs ssoRoles et lorsque je les récupère cela me donne ceci
Pour l'utilisateur x
$ssoRoles = ou=profil 1,ou=appli-test,ou=roles,dc=secta,dc=fr
ou=Profil 2,ou=appli-test,ou=roles,dc=secta,dc=fr
ou=Profil x, ou=helloworld,ou=roles,dc=secta,dc=fr
Ceci signifie que l'utilisateur x possède les profils 1 et 2 pour appli-test et le profil x pour l'application helloworld.
Pour récupérer le profil quand il n'y a qu'un profil pour une application, comme c'est le cas pour helloworld, pas de problèmes :
Par contre pour générer une variables dans laquelle serait stocké, pour l'application appli-test, les valeur profil 1 et profil 2 (avec séparateur), ça ne marche pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ((grep{/ou=helloworld/} split(';',$ssoRoles))[0] =~ /ou=(.*),ou=helloworld/)[0]
Qui devrait me donner une variable ayant la valeur : "profil 1 || profil 2"
Code : Sélectionner tout - Visualiser dans une fenêtre à part join(' || ', (map {/uid=(.*),ou=appli-test.*/} (grep{/ou=appli-test/} split(';',$ssoRoles)))
J'ai beau le retourner dans tous les sens ça ne fonctionne pas.
Quelqu'un aurait une idée ?
Merci d'avance.
Partager