Arborescence des pages

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

Bloc de code
languagexml
<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
languagexml
<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&amp;csn=%s"/>
	<property name="invalidateRestUrl" value="http://localhost/cgi-bin/validate-example-sgc.py?eppn=%s&amp;csn=%s"/>
</bean>

Un exemple d'un tel validate-example-sgc.py est donné ici :

Bloc de code
languagepy
#!/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

...