| Sommaire |
|---|
Pré-requis
- Java (JDK - JAVA SE 8): http://www.oracle.com/technetwork/java/javase/downloads/index.htmlopenjdk 17) : le mieux est de l'installer via le système de paquets de votre linux.
- Maven (dernière version 3.0.x) : http://mavenle mieux est de l'installer via le système de paquets de votre linux - http://maven.apache.org/download.cgi
- Postgresql 9 ou > : le mieux est de l'installer via le système de paquets de votre linux.
- Tomcat (Tomcat 8)10) - https://tomcat.apache.org/download-10.cgi
- Apache + libapache2-mod-shib2 : https://services.renater.fr/federation/docs/installation/sp
...
Une fois le SP Shibboleth et Apache configurés usuellement (voir : https://services.renater.fr/federation/docs/installation/sp), en plus de l'usuel /secure, il faut sécuriser /manager, /admin et /nfc en ajoutant ceci à la conf apache (à adapter cependant en fonction des versions d'Apache et mod_shib) :des versions d'Apache et mod_shib) :
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
# Security measure: remove any client-supplied REMOTE_USER header early.
# to prevent credential/header spoofing before legitimate authentication occurs.
# Mainly useful for /live, but applying it globally is harmless and ensures safety.
# For locations requiring a Shibboleth session, mod_shib's built-in anti-spoofing is sufficient.
RequestHeader unset REMOTE_USER early
| ||||
| Bloc de code | ||||
| ||||
<Location /secure> AuthType shibboleth ShibRequestSetting requireSession 1 require shib-session ShibUseHeaders On </Location> <Location /manager> AuthType shibboleth ShibRequestSetting requireSession 1 require shib-session ShibUseHeaders On </Location> <Location /admin> AuthType shibboleth ShibRequestSetting requireSession 1 require shib-session ShibUseHeaders On </Location> <Location /nfc> AuthType shibboleth ShibRequestSetting requireSession 1 require shib-session ShibUseHeaders On </Location> |
...
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
create database esupnfctag; create USER esupnfctag with password 'esup'; grant ALL ON DATABASE esupnfctag to esupnfctag; |
ALTER DATABASE esupnfctag OWNER TO esupnfctag; |
Paramétrage mémoire JVM :
...
| 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.
...
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 :
...
On copie/colle le répertoire webapp packagé ainsi dans le tomcat :
...
On arrête le tomcat avant et on le redémarre ensuite.
...
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
mvn exec:java -Dexec.args="dbupgrade" |
Droits utilisateur
Le rôle ROLE_ADMIN est necessaire pour gérer l'application
...
Il est alors possible de simuler un badgeage csn via une commande curl ex :
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
curl -X POST -H "Content-type:application/json" -d '{"csn":"045371d2fd3a80","numeroId":"6847041179388220887"}' http://esupnfctag.univ-ville.fr/csn-ws
|
...