...
Par exemple, lors que vous avez fini la configuration du fichier "src/main/resources/META-INF/spring/applicationContext-custom.xml" vous pouvez exécuter les commandes suivantes depuis la racine de vos sources (ex : /opt/esup-nfc-tag):
Bloc de code |
---|
|
git add src/main/resources/META-INF/spring/applicationContext-custom.xml
git commit -m "config prod univ-ville-fr" |
...
- pour du contrôle d'accès par exemple
- ou pour générer l'identifiant de carte crous si on n'opte pas pour l'usage de carte préencodé crous et qu'on souhaite qu'esup-sgc et esup-nfc-tag se chargent de cet encodage. Aussi dans ce cadre crousEncodeEnabled à true permet de spécifier que l’application CROUS doit être écrite lors de l’encodage des cartes.
Bloc de code |
---|
|
<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> |
...
Voici un exemple de configuration pour activer une telle fonctionnalité
Bloc de code |
---|
|
<bean id="papercutValidateService" class="org.esupportail.sgc.services.papercut.PapercutService">
<property name="authToken" value="mon-auth-token-papercut-positionne-dans-conf-avancee" />
<property name="server" value="papercut.univ-ville.fr" />
<property name="scheme" value="https" />
<property name="port" value="443" />
<property name="accountName" value="" />
<property name="papercutUidFromEppnRegex" value="([^@]*)@.*"/>
<property name="cardNumberAttribute" value="card-number"/>
</bean> |
...
Exemple d'un tel script cgi python validate-example-sgc.py est donné ici :
Bloc de code |
---|
|
#!/usr/bin/python
# -*- coding: utf-8 -*-
import cgi
import requests
arguments = cgi.FieldStorage()
eppn = arguments['eppn'].value
print "Content-Type: text/plain"
print ""
print eppn
resp = requests.get(url = 'https://esup-sgc.univ-ville.fr/wsrest/api/get?eppn=%s' % eppn)
csn = ''
acccesControlId = ''
data = resp.json()
for user in data :
for card in user['cards'] :
if card['etat'] == 'ENABLED' :
csn = card['csn']
acccesControlId = card['desfireIds']['access-control']
open_file = open('/opt/export-sgc/a.txt', 'a+b')
open_file.write('card enabled for %s : csn -> %s, access-control : %s\n' % (eppn, csn, acccesControlId))
open_file.close()
print 'OK'
|
...
Permet de configurer l’envoi des données à l’api ESC (Eropean Student Card) voir : http://europeanstudentcard.eu/
Bloc de code |
---|
|
<bean id="europeanStudentCardService" class="org.esupportail.sgc.services.esc.ApiEscrService">
<property name="enable" value="false"/>
<property name="webUrl" value="http://api-sandbox.europeanstudentcard.eu/v1" />
<property name="key" value="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" />
<property name="restTemplate" ref="restTemplate" />
<property name="countryCode" value="FR"/>
<property name="picInstitutionCode" value="000000000"/>
<!--
Type of cards. Possibles values are :
1 - passive card, with no electronic
2 - Smartcard without European common data zone
3 - Smartcard with European common data zone
4 - Smartcard on which application may be installed by service providers
-->
<property name="cardType" value="2"/>
</bean> |
...
Ce fichier applicationTasksContext.xml vous permet de régler la synchronisation régulière (notez que seule la synchronisation des groupes est en fait active par défaut !), une configuration de production pourra être celle-ci :
Bloc de code |
---|
|
<task:scheduled-tasks scheduler="sgcScheduler">
<task:scheduled ref="ldapGroup2UserRoleService" method="syncAllGroupsOnDb" fixed-delay="300000" initial-delay="10000"/>
<task:scheduled ref="resynchronisationService" method="synchronizeAllUsersInfos" fixed-delay="21600000" initial-delay="10000"/>
</task:scheduled-tasks> |
...
Dans le cadre du SGC il faudra à minima configurer la connexion avec esup-sgc à l’aide de la configuration suivante :
Bloc de code |
---|
|
<bean id="csnAuthConfig" class="org.esupportail.nfctag.service.api.impl.CsnAuthConfig">
<property name="description" value="Authentification CSN"/>
</bean>
<bean id="esupSgcWriteExtApi" class="org.esupportail.nfctag.service.api.impl.AppliExtRestWs">
<property name="isTagableUrl" value="https://esup-sgc-test.univ-ville.fr/wsrest/nfc/isTagable"/>
<property name="validateTagUrl" value="https://esup-sgc-test.univ-ville.fr/wsrest/nfc/validateTag"/>
<property name="getLocationsUrl" value="https://esup-sgc-test.univ-ville.fr/wsrest/nfc/locations"/>
<property name="description" value="Web Service Write Esup SGC"/>
</bean>
<bean id="tagIdCheckApiEsupSgc" class="org.esupportail.nfctag.service.api.impl.TagIdCheckRestWs">
<property name="tagIdCheckUrl" value="https://esup-sgc-test.univ-ville.fr/wsrest/nfc/tagIdCheck"/>
<property name="idFromEppnInitUrl" value="https://esup-sgc-test.univ-ville.fr/wsrest/nfc/idFromEppnInit"/>
<property name="description" value="via Esup SGC"/>
</bean> |
...
Dans ce même fichier se trouve les IP des machines ayant le droit d'accéder au Web Service d'esup-nfc-tag-server :
Bloc de code |
---|
|
<intercept-url pattern="/wsrest/**" access="hasIpAddress('127.0.0.1')" /> <!-- Esup-SGC IP Address --> |
La sécurité de ces accès Web Service se fait en effet simplement par ce filtrage IP. Aussi ici, vous pouvez mettre l'IP d'esup-sgc notamment (vous pouvez mettre plusieurs IP en utilisant 'or') :
Bloc de code |
---|
|
<intercept-url pattern="/wsrest/**" access="hasIpAddress('127.0.0.1') or hasIpAddress('192.168.1.2')" /> <!-- Esup-SGC IP Address --> |
...