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.

...

applicationContext-services.xml

UserInfo :

La première partie du fichier comporte les « UserInfoService » ainsi que les « SpelUserInfoService » . Ces deux entités ont pour but de peupler les informations des demandeurs de carte à l’aide des différentes sources de données présentent dans le SI de l'établissement (ou dans les SI des établissements partneaires - cas d'une authentification shibboleth extérieure, ou encore de l'usage d'un 'meta-annuaire' multi-établissements).

...

update user_account set request_free = true;


cardIdsService 
:

Permet de configurer la génération d'identifiants qui pourront être codés dans la carte par esup-nfc-tag :

...

Bloc de code
languagexml
	<bean id="cardIdsService" class="org.esupportail.sgc.services.cardid.CardIdsService">
		<property name="cardIdServices">
			<list>
				<bean class="org.esupportail.sgc.services.cardid.ComueNuAccessControlCardIdService">
					<property name="appName" value="access-control"/>
					<property name="idCounterBegin" value="XXXXXXXXXXXXXXX"/>
					<property name="postgresqlSequence" value="card_sequence"/>
				</bean>
				<bean class="org.esupportail.sgc.services.cardid.ComueNuBuCardIdService">
					<property name="appName" value="bu"/>
				</bean>
				<bean class="org.esupportail.sgc.services.cardid.CnousCardIdService">
					<property name="appName" value="crous"/>
					<property name="idCounterBegin" value="XXXXXXXX"/>
					<property name="postgresqlSequence" value="crous_smart_card_sequence"/>
					<property name="crousEncodeEnabled" value="false"/>
				</bean>
			</list>
		</property>
	</bean>

 

EsupNfcTagService :

Pour spécifier l’adresse du serveur esup-nfc-tag. Le SGC déclare et contrôle ses périphériques d’encodage (esup-scg-client) avec esup-nfc-tag (applicationName correspond à l'application créée dans esup-nfc-tag)

Bloc de code
languagexml
<bean id="esupNfcTagService" class="org.esupportail.sgc.services.EsupNfcTagService">
 <property name="restTemplate" ref="restTemplate"/>
 <property name="webUrl" value="http://esup-nfc-tag.univ-ville.fr"/>
 <property name="applicationName" value="Ecriture SGC"/>
 <property name="location" value="Encodage ESUP SGC"/>
</bean>

 

LdapValidateService

Le SGC peut transmettre des données au LDAP lorsque la carte est activée. Dans le bean ldapValidateService il est possible de paramétrer deux types de clés : Simple ou multivaluée (ldapCardIdsMappingValue, ldapCardIdsMappingMultiValues)

...

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.

...

On peut ici imaginer un service rest répondant derrière http://localhost/cgi-bin/validate-example-sgc.py - on insérera la configuration suivante dans applicationContext-services.xml pour activer celà (notez que le  applicationContext-services.xml par défaut ne propose pas par défaut un tel exemple ). 

 

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 script cgi python validate-example-sgc.py est donné ici à tritre d'exemple simplement :

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

...