Page tree
Skip to end of metadata
Go to start of metadata

L'application esup-ngc-tag-keyboard permet d’émuler des frappes clavier (permettant ainsi de saisir l'identifiant du porteur de carte par exemple) ou de faire une redirection en fonction des données récupérées via esup-nfc-tag-server

L'application lit le csn ou l'application Desfire d'une carte et le transmet a esup-nfc-tag-server qui répond en fonction de l'identifiant de périphérique choisi.

Environnement

Pré-requis

  • Java 1.8
  • Maven

Logiciel

  • L'application est prévue pour tourner avec java 8

Materiel

  • un lecteur de carte USB compatible PC/SC (ex: Indentive Cloud 4700f, OMNIKEY CardMan 5x21-CL...)

Sources : https://github.com/EsupPortail/esup-nfc-tag-keyboard

git clone https://github.com/EsupPortail/esup-nfc-tag-keyboard.git

Paramétrage

L'application propose plusieurs options :

  • Switcher entre plusieurs applications (numeroIds peut contenir plusieurs valeurs séparées par des virgules)
  • Émulation clavier
  • Redirection dans un navigateur web vers une url construite avec l'identifiant retourné
  • Possibilté d'ajouté un préfixe et/ou un suffixe

Il est possible de modifier le fichier src/main/resources/esupnfctagkeyboard.properties pour spécifier les paramètres par défaut :

esupNfcTagServerUrl = https://esup-nfc-tag.univ-ville.fr
numeroIds = keyboard-secondary-id, keyboard-eppn
emulateKeyboard = true
redirect = false
redirectUrlTemplate = https://esup-sgc.univ-rouen.fr/manager/{0}
prefix =
suffix  =

Compilation esup-nfc-tag-keyboard

Modifier le fichier esupnfctagkeyboard.properties pour y insérer l'adresse de l'instance esup-nfc-tag-server et le numéro de périphérique par défaut

Dans de répertoire des sources lancer la commande :

mvn clean package

le jar esupsgckeybemu-1.0-SNAPSHOT-jar-with-dependencies.jar va être générer dans le dossier target

Paramétrage esup-nfc-tag

Voici un exemple de configuration pour une utilisation en Bibliothèque universitaire

Il faut tout d'abord ajouter une configuration dans applicationContext-custom.xml. (exemple se basant sur ESUP-SGC)

    <bean id="esupSecondaryIdExtApi" 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="getLocationsUrl" value="https://esup-sgc.univ-ville.fr/wsrest/nfc/locationsSecondaryId"/>
        <property name="displayUrl" value="https://esup-sgc.univ-ville.fr/wsrest/nfc/secondaryId?idName=secondaryId"/>
        <property name="description" value="Web Service SecondaryId"/>
    </bean> 

 

Créer une application dans esup-nfc-tag-server avec les paramètres suivants :

  • Nom : Biblio
  • Configuration NFC : Authentification CSN
  • Application externe : Web Service SecondaryId
  • Controle du tagId : via Esup SGC

Créer un périphérique dans esup-nfc-tag-server avec les paramètres suivants:

Lancement de l'application

Il est possible de déclarer les propriétés systèmes suivantes, au lancement du jar, pour surcharger les propriétés définies dans esupnfctagkeyboard.properties (afin d'évité de recompiler l'application):

-DesupNfcTagKeyboard.url=https://esup-nfc-tag.univ-ville.fr
-DesupNfcTagKeyboard.numeroIds=<liste des numemeroIds séparés par des virgules>
-DesupNfcTagKeyboard.emulateKeyboard=true
-DesupNfcTagKeyboard.forceCsn=false
-DesupNfcTagKeyboard.lineFeed=true
-DesupNfcTagKeyboard.redirect=false
-DesupNfcTagKeyboard.redirectUrlTemplate = https://esup-sgc.univ-rouen.fr/manager/{0}
-DesupNfcTagKeyboard.prefix=
-DesupNfcTagKeyboard.suffix=

pour lancer l'application:

java -jar esupnfctagkeyboard-1.0-SNAPSHOT-jar-with-dependencies.jar

Sous windows, le plus simple est de créer un fichier bat comme suit (ici un exemple avec l'ajouter un prefix) :

@ECHO OFF
start javaw -jar -DesupNfcTagKeyboard.prefix=TEST c:\<path_to_jar>\esupsgckeybemu-1.0-SNAPSHOT-jar-with-dependencies.jar
exit

et de lancer le fichier bat, l'application va alors tourner en tache de fond

Il est possible de créer plusieurs applications en ajoutant d'autres AppliExtRestWs dans le fichier applicationContext-custom.xml puis en créant les nouvelles applications et les périphériques qui correspondent dans esup-nfc-tag-server.

L'application permet de switcher d'une application à une autre via le "tray icon"

Par exemple pour une émulation de l'eppn :

<bean id="esupEppnExtApi" 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="getLocationsUrl" value="https://esup-sgc.univ-ville.fr/wsrest/nfc/locationsSecondaryId"/>
    <property name="displayUrl" value="https://esup-sgc.univ-ville.fr/wsrest/nfc/secondaryId?idName=eppn"/>
    <property name="description" value="Web Service SecondaryId"/>
</bean> 

Usage

Pour contôler que l'application est bien lancée, un "tray icon" doit apparaitre dans la barre des taches. Celui-ci représente le logo esupnfctag et permet :

  • de contôler l'état de l'application (le logo barré d'une croix rouge représente une erreur à consulter dans les log)
  • switcher d'une application à une autre (entre l'eppn et le secondaryId par exemple)
  • quitter l'application


Une fois l'application lancée, lorsque qu'une carte est posée, le retour du web service est émulé sur le clavier. Si l'application a été configurée avec "redirect = true", le navigateur ouvre le lien définit par redirectUrlTempalte
Dans le but d'évité une mauvaise manipulations, une même carte ne peut pas être passée une deuxieme fois pendant un délai de 3 secondes.

Démarrage automatique pour tous les utilisateurs du poste

copier le fichier esupnfctagkeyboard-1.0-SNAPSHOT-jar-with-dependencies.jar dans le dossier c:\<path_to_jar>

copier le .bat dans C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

Lorsque qu'un utilisateur ouvre une session le .bat est executé et l'application se lance en tache de fond

  • No labels