...
Bloc de code | ||
---|---|---|
| ||
<bean id="ldapValidateService" class="org.esupportail.sgc.services.ldap.LdapValidateService"> <property name="ldapTemplate" ref="ldapTestTemplate"/> <property name="peopleSearchFilter" value="(eduPersonPrincipalName={0})"/> <property name="ldapCardIdsMappingMultiValues"> <map> <!-- Exemple clé multi-valuée --> <entry key="supannRefId"> <list> <value>{ISO15693}%csn%</value> <value>{LEOCARTE:ACCESS-CONTROL}%access-control%</value> </list> </entry> <!-- Exemple clé multi-valuée --> <entry key="autreExemple"> <list> <value>%reverse_csn%@ISO15693</value> </list> </entry> </map> </property> <property name="ldapCardIdsMappingValue"> <map> <!-- Exemple clé simple --> <entry key="jpegPhoto" value="%photo%"/> </map> </property> </bean> |
RestValidateService
Le SGC propose une implémentation ValidateService appelant un service REST à chaque activation ou désactivation de carte.
Couplé à l'API esup-sgc permettant de récupérer des informations utilisateurs et de cartes du SGC, celà peut vous permettre d'intégrer élégamment et de manière synchrone une brique de votre système d'information encore non intégrée par défaut par esup-sgc, ce sans nécessité de coder dans esup-sgc lui-mêrme.
On peut ici imaginer un service rest répondant derrière http://localhost/cgi-bin/validate-example-sgc.py
Bloc de code | ||
---|---|---|
| ||
<bean id="myRestValidateService" class="org.esupportail.sgc.services.RestValidateService">
<property name="restTemplate" ref="restTemplate"/>
<property name="validateRestUrl" value="http://localhost/cgi-bin/validate-example-sgc.py?eppn=%s&csn=%s"/>
<property name="invalidateRestUrl" value="http://localhost/cgi-bin/validate-example-sgc.py?eppn=%s&csn=%s"/>
</bean> |
Un exemple d'un tel validate-example-sgc.py est donné ici :
Bloc de code | ||
---|---|---|
| ||
#!/usr/bin/python
# -*- coding: utf-8 -*-
import cgi
import requests
import tempfile
import os
arguments = cgi.FieldStorage()
eppn = arguments['eppn'].value
print "Content-Type: text/plain"
print ""
print eppn
url = 'https://esup-sgc.univ-ville.fr/wsrest/api/get?eppn='
resp = requests.get(url=url+eppn)
data = resp.json()
csn = ''
for user in data :
for card in user['cards'] :
if card['etat'] == 'ENABLED' :
csn = card['csn']
open_file = open('/opt/export-sgc/sgc-eppn-csn-actif.txt', 'w+b')
open_file.write('csn enabled for %s -> %s' % (eppn, csn))
open_file.close()
print 'OK' |
applicationContext-crous.xml
...