...
Bloc de code | ||
---|---|---|
| ||
cd /opt git clone https://github.com/EsupPortail/esup-nfc-tag-server |
Configurations
Au niveau de l'application, les fichiers de configuration à modifier sont les suivants :
- src/main/webapp/META-INF/context.xml pour le paramétrage des connexions à la base de données
- src/main/resources/logback.xml pour la configuration des logs
- src/main/resources/META-INF/spring/applicationContext-custom.xml pour le paramétrage des services que doit intégrer l'application EsupNfcTagServer ; c'est le fichier de paramétrage important de l'application et ce sont ces paramétrages qui sont décrits dans ce qui suit.
3 services distincts correspondent à l'implémentation DES API définis dans
org.esupportail.nfctag.service.api :
- NfcAuthConfig
- TagIdCheckApi
- AppliExtApi
Versioning de la configuration
...
La modification du fichier applicationContext-custom.xml sera versionnée ce qui permet de concerver les traces de toutes les modification (procédure à faire à chaque modification). De plus lors d'une mise à jour d'ESUP-SGC (git pull) la configuration ne sera pas écrasée.
Au niveau de l'application, les fichiers de configuration à modifier sont les suivants :
- src/main/webapp/META-INF/context.xml pour le paramétrage des connexions à la base de données
- src/main/resources/logback.xml pour la configuration des logs
- src/main/resources/META-INF/spring/applicationContext-custom.xml pour le paramétrage des services que doit intégrer l'application EsupNfcTagServer ; c'est le fichier de paramétrage important de l'application et ce sont ces paramétrages qui sont décrits dans ce qui suit.
3 services distincts correspondent à l'implémentation des apis définis dans
org.esupportail.nfctag.service.api :
- NfcAuthConfig
- TagIdCheckApi
- AppliExtApi
NfcAuthConfig
NfcAuthConfig correspond à la façon dont la carte est authentifiée/identifiée.
...
Les 2 autres services TagIdCheckApi et AppliExtApi sont indépendants quant à eux de EsupNfcTagDroid et de nouvelles implémentations de ces services peuvent être envisagées, même si le recours à leurs implémentations sous forme de Web Service REST doit être naturellement privilégiées.
Exemple AuthConfig
Pour une configuration d'authentification de carte par CSN :
Bloc de code |
---|
<bean id="csnAuthConfig" class="org.esupportail.nfctag.service.api.impl.CsnAuthConfig"> <property name="description" value="Authentification CSN"/> </bean> |
Pour une configuration d'authentification de carte par Mifare Desfire AES :
Bloc de code |
---|
<bean id="desfireAuthConfig" class="org.esupportail.nfctag.service.api.impl.DesfireAuthConfig">
<property name="desfireKeyNumber" value="01"/>
<property name="desfireAppId" value="A123F1"/>
<property name="desfireAppName" value="test-app"/>
<property name="readFileCommand" value="90BD0000070000000016000000"/>
<property name="desfireKey" value="/var/local/key"/>
<property name="description" value="Authentification DESFIRE"/>
</bean> |
TagIdCheckApi
TagIdCheckApi correspond à la façon dont on récupère l'identification d'un individu depuis un identifiant de carte (identifiant CSN ou issu de la lecture d'un fichier Desfire). Cette identification de l'individu consiste en son eppn, nom, prénom.
...
TagIdCheckRestWs : recupération des identifants via webservices REST
TagIdCheckSql : recupération des identifants via une base de données
TagIdCheckLdap : recupération des identifants via un annuaire LDAP
Exemple TagIdCheck
Bloc de code |
---|
<bean id="tagIdCheckApiCarteCulture" class="org.esupportail.nfctag.service.api.impl.TagIdCheckRestWs">
<property name="tagIdCheckUrl" value="https://carte-culture.univ-rouen.fr/nfc-ws/tagIdCheck"/>
<property name="description" value="via Carte Culture"/>
</bean> |
tagIdCheckUrl : adresse du webservice permettant de retrouver une personne en fonction de sont identifiant de carte (csn ou idp2s)
Pour tester l'application rapidement, ajouter ce tagIdCheck (qui retournera toujours un résultat):
Bloc de code |
---|
<bean id="tagIdCheckApiDummy" class="org.esupportail.nfctag.service.api.impl.TagIdCheckDummyWs">
<property name="description" value="TagIdCheckDummy"/>
</bean> |
AppliExtApi
AppliExtApi correspond à l'application cible finale du badgeage :
...
Les services
utilisables avec la carte peuvent être configurés dans le fichier
src/main/resources/META-INF/spring/applicationContext-custom.xml
.
Exemple AppliExtDummy
Bloc de code |
---|
<bean id="exempleDummyExtApi" class="org.esupportail.nfctag.service.api.impl.AppliExtDummy"> <property name="description" value="Salle de test"/> <property name="locationsNames"> <util:list> <value>Salle de test</value> </util:list> </property> <property name="eppnFilter" value=". |
...
*"/>
</bean> |
Il est possible de filtrer les eppn des personnes autorisées à voir l'application Dummy
Exemple AppliExtRestWs
Exemples
...
Bloc de code |
---|
<bean id="esupSgcExtApi" class="org.esupportail.nfctag.service.api.impl.AppliExtRestWs"> <property name="isTagableUrl" value="https://esup-sgc.univ-ville.fr/wsrest/nfc/isTagable"/> <property name="validateTagUrl" value="https://esup-sgc.univ-ville.fr/wsrest/nfc/validateTag"/> <property name="locationsUrl" value="https://esup-sgc.univ-ville.fr/wsrest/nfc/getLocations"/> <!-- <property name="displayUrl" value="https://esup-sgc.univ-ville.fr/wsrest/nfc/verso"/> --> <property name="description" value="Web Service Carte Culture"/> <property name="backgroundColor" value="rgb(121, 119, 116)"/> <property name="header" value="https://carte-culture.univ-rouen.fr/resources/images/logo.jpg"/> </bean> |
isTagable :
adresse du webservice permettant de contrôler si un badge est valide
validateTagUrl : adresse du webservice permettant de confirmer un badgeage
locationsUrl : adresse du webservice retournant la liste des « lieux » disponible pour l'utilisateur courant (utilisateur du lecteur de carte)
displayUrl (non requis) : adresse du webservice permettant l'affichage d'information après la validation du tag
TagIdCheck
Bloc de code |
---|
<bean id="tagIdCheckApiCarteCulture" class="org.esupportail.nfctag.service.api.impl.TagIdCheckRestWs">
<property name="tagIdCheckUrl" value="https://carte-culture.univ-rouen.fr/nfc-ws/tagIdCheck"/>
<property name="description" value="via Carte Culture"/>
</bean> |
tagIdCheckUrl : adresse du webservice permettant de retrouver une personne en fonction de sont identifiant de carte (csn ou idp2s)
Pour tester l'application rapidement, ajouter ce tagIdCheck (qui retournera toujours un résultat):
Bloc de code |
---|
<bean id="tagIdCheckApiDummy" class="org.esupportail.nfctag.service.api.impl.TagIdCheckDummyWs">
<property name="description" value="TagIdCheckDummy"/>
</bean> |
AuthConfig
Pour une configuration d'authentification de carte par CSN :
...
Pour une configuration d'authentification de carte par Mifare Desfire AES :
Bloc de code |
---|
<bean id="desfireAuthConfig" class="org.esupportail.nfctag.service.api.impl.DesfireAuthConfig">
<property name="desfireKeyNumber" value="01"/>
<property name="desfireAppId" value="A123F1"/>
<property name="desfireAppName" value="test-app"/>
<property name="readFileCommand" value="90BD0000070000000016000000"/>
<property name="desfireKey" value="/var/local/key"/>
<property name="description" value="Authentification DESFIRE"/>
</bean> |
Base de données
src/main/resources/META-INF/persistence.xml
...
database.password=esup
Logs
logback
src/main/resources/
logback
.xml
modifier le fichier pour paramétrer l'adresse mail d'envoi et le chemin du fichier de log
...
On copie/colle le répertoire webapp packagé ainsi dans le tomcat :
...
On arrête le tomcat avant et on le redémarre ensuite.
...
- Configuration NFC (CSN, Desfire ou config spécifique SGC)
- Contrôle du tagId (voir Implémentation du Web Service TagIdCheck)
- Valeur par défaut pour la validation sans confirmation (si oui, les périphériques qui se brancheront sur cette application ne demanderont pas de validation manuelle lors du badgeage)
- Puis en mode modification il est possible de désactiver une application. Cela masque l'application mais elle reste utilisable.
Pour un test, choisir Authentification CSN, Dummy !, le tagIdCheck qui convient
(voir implémentation du tagIdCheck)
...