...
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" |
...
Les paramètres de connexion à la base de données sont indiqués dans le database.properties. Par exemple:
Bloc de code | ||
---|---|---|
| ||
database.driverClassName=org.postgresql.Driver database.url=jdbc\:postgresql\://localhost\:5432/esupsgc database.username=esupsgc database.password=esup |
...
Nom du champ esup-sgc | Usage | Obligatoire | Source à 'privilégier' / Format | ||
---|---|---|---|---|---|
eppn | Identifiant métier : eduPersonPrincipalName | Oui | eduPersonPrincipalName - obligatoire dans toutes les sources - car permet de faire le lien -> shib, ldap et sql | ||
Envoi d’email d’information lors de l’évolution de la carte ; ticket paybox, ... et aussi pour crous/izly → obligatoire | OuiNon | shib/ldap - champ mail | |||
eduPersonPrimaryAffiliation | Catégorisation population – moteur de recherche | Non | shib/ldap - champ eduPersonPrimaryAffiliation | ||
supannEtuId | moteur de recherche | Non | shib/ldap - champ supannEtuId | ||
supannEmpId | moteur de recherche | Non | shib/ldap - champ supannEmpId | ||
supannCodeINE | affichage / construction identifiant ESCR / identfiant crous/izly pour les étudiants → obligatoire dans CROUS/IZLY et ESCR | Oui | shib/ldap - champ supannCodeINE | ||
supannEntiteAffectationPrincipale | moteur de recherche | Non | shib/ldap - champ supannEntiteAffectationPrincipale | ||
firstname | Affichage / moteur de recherche | Oui | shib/ldap - champ givenname | ||
name | Affichage / moteur de recherche | Oui | shib/ldap - champ sn | ||
schacDateOfBirth | Date de naissance - obligatoire dans les contrôles d’accès. | Oui | shib/ldap - champ schacDateOfBirth | ||
schacExpiryDate | Date de fin de droits – les cartes de l’individu sont marquées comme caduques cette date passée. Format UTC : yyyyMMddHHmmss'Z' Cette date est également envoyée aux services qui ont besoin d'une date de fin (expiration) telles que les contrôles d'accès, ESCR, le CROUS (dueDate). | Oui | shib/ldap - champ schacExpiryDate | ||
referenceStatut | Population crous (psg, etd, prs, hbg, fct, fpa, stg) - permet de calculer le tarif et société crous depuis le fichier ESIST.xml | Oui | sql | ||
indice | Indice du personnel - permet de calculer le tarif et société crous depuis le fichier ESIST.xml | Non | sql | ||
secondaryId | Identifiant secondaire quelconque – affichage / moteur de recherche / web service spécificité COMUE NU : doit correspondre au leocode | Non | ... | ||
institute | Établissement, affichage ... | Non | règle d'un spelUserInfoService : nom (libellé) de l'établissement | ||
supannEtablissement | Code RNE Établissement - permet de calculer le tarif et société crous depuis le fichier ESIST.xml Depuis la 1.1.1, ce code RNE ainsi récupéré est envoyé dans l'API CROUS en tant que rneOrgCode | Oui | shib/ldap - champ supannEtablissement code UAI / RNE : | ||
address | Affichage / moteur de recherche | Non | peut correspondre à supannEntiteAffectationPrincipale ou champs sql spécifique | ||
externalAddress | Affichage / moteur de recherche | Non | |||
recto1 | Libellé sur recto | Non | ldap, sql, ou/et calculé via des règles d'un spelUserInfoService | ||
recto2 | Libellé sur recto | Non | ldap, sql, ou/et calculé via des règles d'un spelUserInfoService | ||
recto3 | Libellé sur recto | Non | ldap, sql, ou/et calculé via des règles d'un spelUserInfoService | ||
recto4 | Libellé sur recto | Non | ldap, sql, ou/et calculé via des règles d'un spelUserInfoService | ||
recto5 | Libellé sur recto | Non | ldap, sql, ou/et calculé via des règles d'un spelUserInfoService | ||
verso1 | Libellé sur verso (dématérialisé) | Non | ldap, sql, ou/et calculé via des règles d'un spelUserInfoService | ||
verso2 | Libellé sur verso (dématérialisé) | Non | ldap, sql, ou/et calculé via des règles d'un spelUserInfoService | ||
verso3 | Libellé sur verso (dématérialisé) | Non | ldap, sql, ou/et calculé via des règles d'un spelUserInfoService | ||
verso4 | Libellé sur verso (dématérialisé) | Non | ldap, sql, ou/et calculé via des règles d'un spelUserInfoService | ||
verso5 | Libellé sur verso (dématérialisé) | Non | ldap, sql, ou/et calculé via des règles d'un spelUserInfoService | ||
freeField1 | Champ libre - peut servir à la recherche/affichage | Non | libre | ||
freeField2 | Champ libre - peut servir à la recherche/affichage | Non | libre | ||
freeField3 | Champ libre - peut servir à la recherche/affichage | Non | libre | ||
supannRefId4ExternalCard | supannRefId donnant des numéros de cartes 'externes', cad non issus du SGC (et donc issus d'un autre SGC) Déprécié : merci d'utiliser csn4ExternalCard et control4ExternalCard | Non | shib/ldap - champ supannRefId - atend en dur | ||
csn4ExternalCard | csn des cartes 'externes', cad non issus du SGC (et donc issus d'un autre SGC) | Non | le-numero-csn (on pourra utiliser le champ supannRefId pour le faire transiter) | ||
access-control4ExternalCard | numéro de carte de contrôle d'accès des cartes 'externes', cad non issus du SGC (et donc issus d'un autre SGC) | Non | le-numero-access-control (on pourra utiliser le champ supannRefId pour le faire transiter) | ||
jpegPhoto4ExternalCard | jpegPhoto donnant la photo de cartes 'externes', cad non issus du SGC (et donc issus d'un autre SGC) | Non | shib/ldap - champ jpegPhoto sql : jpegPhoto correspondant à une photo jpeg exportée en base64 | ||
jpegPhoto | jpegPhoto donnant la photo par défaut pour un utilisteur utilisateur : c'est cette photo qui est proposée par défaut lors de la première demande de carte ou via la demande de carte via l'API REST (sans spécifier une photo spécifique) | Non | shib/ldap - champ jpegPhoto sql : jpegPhoto correspondant à une photo jpeg exportée en base64 | ||
userType | affichage : onglet par userType | Oui | règle d'un spelUserInfoService Attention, le nombre maximal de caractères du userType est limité à 3 ; les libellés à donner dans les messages i18n sont libres quand à eux ; | ||
template | thème (template) de carte à utiliser | Oui | règle d'un spelUserInfoService - doit correspondre à une clef de template | ||
editable | true ou false selon que l'utilisateur est 'éditable ou non' | Non | remplace l'usage de ROLE_USER_NO_EDITABLE (qui en tant que 'groupe' doit forcément correspondre à un groupe/champ ldap) | ||
requestFree | true ou false selon que l'utilisateur doit payer le renouvellement de la carte | Non | remplace l'usage de ROLE_USER_RENEWAL_PAYED (qui en tant que 'groupe' doit forcément correspondre à un groupe/champ ldap) si utilisé, il vous faut supprimer la référence à ROLE_USER_RENEWAL_PAYED dans sgcMappingGroupesRoles (et inversement) | ||
blockUserMsg | Texte HTML affiché à l'utilisateur (vue utilisateur) en lieu et place du formulaire de demande de carte. Si vide (ou non spécifié dans la configuration), le formulaire de demande eest inchangé simplement. | Non | règle d'un spelUserInfoService - peut permettre de personnaliser le message disant à l'utilisateur qu'il ne peut pas demander de carte actuellement via eusp-sgc (car son inscription n'est pas en règle par exemple). | ||
synchronize | Champ permettant d'indiquer que l'utilisateur (et ses cartes) doit être synchronisé depuis les userInfoServices. | Non | . A noter que même si synchronize est à false, le changement d'état de la carte en caduque en fonction de la date de fin enregistrée en base (schacExpiryDate) s'opère et provoque alors à cette date une mise à jour des informations utilisateurs/cartes sur les services tels que le contrôle d'accè, l'API CROUS, le LDAP ... | Non | règle d'un règle d'un spelUserInfoService - dans la configuration donnée par défaut, on met synchronize à 'false' pour les utilisateurs n'ayant plus d'adresses mail de renseignées dans le Système d'Information (ldap/bd). |
academicLevel | Champ academicLevel permettant de transmettre le niveau d'étude de l'étudiant (en cours) à l'API ESCR (carte étudiante européenne). Ce niveau, si transmis, est notamment affiché derrière l'url correrspondant au qrcode de la carte étudiante européenne (page internet précisant si l'individu est effectivement étudiant ). | Non | Cf la doc de l'API ESCR : |
...
update user_account set request_free = true;
...
Permet de configurer la génération d'identifiants qui pourront être codés dans la carte par esup-nfc-tag :
...
caducIfEmpty
Si vous souhaitez rendre caduques les cartes des utilisateurs qui ne sont plus remontés par le SI (ou qui n'ont plus le droit d'avoir de carte selon des règles internes, comme l'appartenance à un groupe ldap) alors même que la date de fin (schacExpiryDate dans esup-sgc) qui a été récupérée lorsque celle-ci était encore disponible reste postérieure à la date du jour, l'utilisation de caducIfEmpty peut être utile.
Dans applicationContext-services.xml vous pouvez mettre :
Bloc de code | ||||
---|---|---|---|---|
| ||||
<bean id="cardIdsServiceuserInfoService" class="org.esupportail.sgc.services.cardiduserinfos.CardIdsServiceUserInfoService"> <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> <beancaducIfEmpty" value="caducIfEmpty"/> </bean> |
Par défaut la propriété caducIfEmpty étant valuée à ""
Vous pouvez alors manipuler un champ caducIfEmpty ainsi par exemple :
Bloc de code | ||||
---|---|---|---|---|
| ||||
<bean id="NoCaduc4All" class="org.esupportail.sgc.services.userinfos.SpelUserInfoService" p:order="5"> <property name="sgcParam2spelExp"> <map> <entry key="caducIfEmpty" value="'Carte-OK'"/> </map> </property> </bean> <bean id="caducIfNoResourceLeocarte" class="org.esupportail.sgc.services.cardid.ComueNuBuCardIdServiceuserinfos.SpelUserInfoService" p:order="6"> <property name="appNameeppnFilter" value="bu.*@univ-ville\.fr"/> </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> <property name="sgcParam2spelExp"> <map> <entry key="caducIfEmpty" value="#userInfosInComputing['memberOf']!=null and #userInfosInComputing['memberOf'].contains('cn=from.si.ressources.carte,ou=groups,dc=univ-ville,dc=fr'))) ? 'Carte-OK' : ''"/> </map> </property> </bean> |
Avec une telle configuration, les utilisateurs univ-ville verront leurs cartes devenir caduques si le memberOf (groupes de l'utilisateur) récupéré depuis le SI ne contient pas cn=from.si.ressources.carte,ou=groups,dc=univ-ville,dc=fr
memberOf étant lui-même récupéré via ldap en l'ajoutant dans les attributs ldap à récupérer
Bloc de code | ||||
---|---|---|---|---|
| ||||
<bean id="ldapUserInfoService" class="org.esupportail.sgc.services.userinfos.LdapUserInfoService" p:order="2">
<property name="eppnFilter" value=".*@univ-ville\.fr"/>
<property name="ldapTemplate" ref="ldapTemplate"/>
<property name="sgcParam2ldapAttr">
<map>
....
<entry key="memberOf" value="memberOf"/>
</map>
</property>
</bean> |
cardIdsService :
Permet de configurer la génération d'identifiants qui pourront être codés dans la carte par esup-nfc-tag :
- 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> |
La propriété idCounterBegin permet de démarrer vos numéros à partir d'une valeur différente de 0.
Mettre 1010000000000000 (par exemple) à ce idCounterBegin pour vos numéros de contrôle d'accès présente plusieurs intérêts :
- vous n'avez pas à vous poser d'éventuelles questions sur le padding électronique réalisé sur vos cartes : tous vos numéros auront la même longueur (sans padding).
- vos numéros supporteront de fait l'attribution de plages de numéros pour un fonctionnement multi-établissements avec multi-instances : il vous suffira en effet de proposer aux autres établissements de configurer leur idCounterBegin par 1020000000000000 puis par 1030000000000000 etc.
C'est via ce même procédé que esup-sgc supporte et respecte les plages d'identifiants crous/izly lors de l'encodage crous/izly ; on met par exemple idCounterBegin 12300000 si le crous/izly nous a fourni une plage (avec clef sam associée) qui démarre à 12300000
Rappel : le crous/izly encourage fortement les établissements à acheter des cartes pré-encodées crous/izly auprès du détenteur du marché national des cartes multiservices pour l'ESR (cf la page du CNCEU - Comité National de la Carte d’Etudiant et de ses Usages - à cet effet), et c'est ce que nous conseillons de faire également.
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 | ||||
---|---|---|---|---|
| ||||
<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)
Les valeurs transmissibles sont : %csn%, %reverse_csn% (le csn retourné par paires), %access-control% (ex : identifiant contrôle d'accès), %photo%.
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> |
...
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> |
La propriété papercutUidFromEppnRegex permet de construire l'uid (identifiant) utilisé dans papercut depuis l'eppn : ([^@]*)@.* permet ainsi de sélectionner le groupe (1er groupe) correspondant à toto dans toto@univ-ville.fr par exemple.
La propriété accountName est à ignorer ; elle ne sert actuellement pas.
Par défaut papercutUidFromEppnRegex correspond à (.*) et correspond donc à utiliser comme identifiant papercut l'eppn directement.
...
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 un tel exemple ).
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> |
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 d’activer l’envoi de données au CROUS via l’api
Bloc de code | ||||
---|---|---|---|---|
| ||||
<bean id="apiCrousService" class="org.esupportail.sgc.services.crous.ApiCrousService">
<property name="enable" value="false"/>
<property name="webUrl" value="https://api-pp.nuonet.fr/v1" />
<property name="appId" value="xxxxxxxxxxxxx" />
<property name="appSecret" value="yyyyyyyyyyyy" />
<property name="restTemplate" ref="restTemplate" />
</bean> |
...
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> |
...
Au niveau de applicationContext-paybox.xml on peut également donner un format de numéro de commande paybox, celui-ci doit être garanti unique au niveau de votre compte paybox. Par défaut, c'est 'LEOCARTE-NEW@@%eppn%@@%montantAsCents%-%date%' Vous pouvez le surcharger en mettant par exemple :
Bloc de code | ||||
---|---|---|---|---|
| ||||
<property name="numCommandeFormat" value="LEOcarte_new-%supannEmpId%%supannEtuId%-%email%-%montantAsCents%-%date%"/> |
...
Comme pour la configuration esup-nfc-tag, il s’agit de mapper les groups sur les rôles proposés par le SGC :
Bloc de code | ||||
---|---|---|---|---|
| ||||
<util:map id="sgcMappingGroupesRoles"> <beans:entry key="cn=for.esup-sgc.admin,ou=groups,dc=univ-ville,dc=fr" value="ROLE_ADMIN" /> <beans:entry key="cn=for.esup-sgc.super-manager,ou=groups,dc=univ-ville,dc=fr" value="ROLE_SUPER_MANAGER" /> <beans:entry key="cn=for.esup-sgc.livreur,ou=groups,dc=univ-ville,dc=fr" value="ROLE_LIVREUR" /> <beans:entry key="cn=for.esup-sgc.updater,ou=groups,dc=univ-ville,dc=fr" value="ROLE_UPDATER" /> <beans:entry key="cn=for.esup-sgc.consult,ou=groups,dc=univ-ville,dc=fr" value="ROLE_CONSULT" /> <beans:entry key="cn=for.esup-sgc.user,ou=groups,dc=univ-ville,dc=fr" value="ROLE_USER" /> <beans:entry key="cn=from.apogee.dossier-nok,ou=groups,dc=univ-ville,dc=fr" value="ROLE_USER_NO_EDITABLE" /> <beans:entry key="cn=from.esup-sgc.users-cards-3years-student,ou=groups,dc=univ-ville,dc=fr" value="ROLE_USER_RENEWAL_PAYED" /> </util:map> |
...
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> |
...
Key | Description | Type |
---|---|---|
MODE_LIVRAISON | Permet d'afficher ou non tout ce qui concerne la livraison de carte. | BOOLEAN |
MODE_BORNES | Affiche ou non ce qui concerne les bornes de mise à jour. | BOOLEAN |
QRCODE_ESC_ENABLED | Si ''false'', le QRCODE contient l'eppn. Si ''true'', il contient l'identifiant dans le cadre de la carte européenne | BOOLEAN |
ENABLE_AUTO | Si true, la carte se met directement à l''état ''ENABLED'' (activé) à la fin de l''encodage, sinon la carte se met à l''état ''ENCODED'' (encodé). | BOOLEAN |
SYNCHRONIC_EXPORT_CSV_FILE_NAME | Nom du fichier CSV Synchronic | TEXT |
TIL_EXPORT_CSV_FILE_NAME | Nom du fichier CSV d'export Til | TEXT |
P2S_EXPORT_CSV_FILE_NAME | Nom du fichier d'export P2S | TEXT |
QRCODE_FORMAT | Format de l'image du QRCODE utilisé pour l'impression. (SVG ou PNG) | TEXT |
DISPLAY_FORM_EUROPEAN | Dans le formulaire de demande de carte, population pour laquelle on affiche la partie concernant l'adhésion au projet de carte européenne. E=Etudiant, I=Invité, P=Personnel (ex: IP) | TEXT |
MAIL_NO_REPLY | Adresse 'From' des mails envoyés à partir de l'application. | TEXT |
MAIL_LISTE_PRINCIPALE | Adresse mail à laquelle sont adressés en copie les mails automatiques de demande de cartes ou lors de l'activation/réactivation de carte. | TEXT |
...
ESUP-NFC-TAG-SERVER
Info |
---|
L'installation d'ESUP-NFC-TAG-SERVER est documentée sur cette page ESUP-NFC-TAG-SERVER. Cette partie traite de la configuration d'Esup-Nfc-Tag-Server en adéquation avec l'installation d'Esup-SGC. |
...
La configuration se fait par les fichiers suivants :
...
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 le ficher applicationContext-desfire.xml on trouve la structure et les données qui seront écrites sur la carte lors de l’encodage. Par défaut la configuration de Desfire est vide, aucune application ne sera écrite sur la carte.
Bloc de code | ||||
---|---|---|---|---|
| ||||
<bean id="desfireAuthConfigComueWriteEsupSgc" class="org.esupportail.nfctag.service.api.impl.DesfireWriteConfig"> <property name="desfireTag" ref="tagName" /> <property name="description" value="Ecriture ESUP SGC"/> </bean> <bean id="tagName" class="org.esupportail.nfctag.beans.DesfireTag" p:formatBeforeWrite="false" p:key="0000000000000000" p:keyType="DES" p:keyVersion="00"> </bean> |
...
Dans le fichier applicationContext-security.xml il faut modifier le mapping des groupes pour l’attribution des rôles Admin et Supervisor en precisant le cn des groupes concernés. Attention, la chaine est sensible à la casse :
Bloc de code | ||||
---|---|---|---|---|
| ||||
<beans:bean id="authUserDetailsService" class="org.esupportail.nfctag.security.ShibAuthenticatedUserDetailsService"> <beans:property name="mappingGroupesRoles"> <beans:map> <beans:entry key="cn=for.esup-nfc-tag.admin,ou=groups,dc=univ-ville,dc=fr" value="ROLE_ADMIN" /> <beans:entry key="cn=for.esup-nfc-tag.supervisor,ou=groups,dc=univ-ville,dc=fr" value="ROLE_SUPERVISOR" /> </beans:map> </beans:property> </beans: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 --> |
...
Nom : « Ecriture SGC »
Configuration NFC : « Ecriture ESUP SGC » (spécifié dans applicationContext-desfire.xml)
Application externe : « Web Service Write Esup SGC »
Contrôle du tagId : « via Esup SGC »
Valeur par défaut pour la validation sans confirmation : true
- Visible : true
Cette application étant dédiée au client ESUP-SGC-CLIENT il n'est pas souhaitable de la voir apparaitre dans les applications ESUP-NFC-TAG DROID et DESKTOP. Pour cela il faut la modifier pour décocher la case "Active" :
- Application d'écriture pour esup-sgc-client: true
Voir aussi la configuration des applications optionnelles : Applications ESUP-SGC / ESUP-NFC-TAG optionnelles