Pré-requis
...
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) :
Bloc de code |
---|
language | text |
---|
theme | RDarkxml |
---|
|
<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 |
---|
language | text |
---|
theme | RDarkbash |
---|
|
host all all 127.0.0.1/32 password |
- redémarrage de postgresql
- psql
Bloc de code |
---|
language | sql |
---|
theme | bashRDark |
---|
|
create database esupnfctag;
create USER esupnfctag with password 'esup';
grant ALL ON DATABASE esupnfctag to esupnfctag; |
...
Pensez à paramétrer les espaces mémoire JVM :
Bloc de code |
---|
|
export JAVA_OPTS="-Xms1024m -Xmx1024m -XX:MaxPermSize=256m" |
Pour maven :
Bloc de code |
---|
|
export MAVEN_OPTS="-Xms1024m -Xmx1024m -XX:MaxPermSize=256m" |
Bloc de code |
---|
|
cd /opt
git clone https://github.com/EsupPortail/esup-nfc-tag-server |
...
Par exemple, lors que vous avez fini la configuration du fichier "src/main/resources/META-INF/spring/applicationContext-custom.xml" vous pouvez executer les commandes suivantes depuis la racine de vos sources (/opt/esup-sgc):
Bloc de code |
---|
|
git add src/main/resources/META-INF/spring/applicationContext-custom.xml
git commit -m "config prod univ-ville-fr" |
...
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> |
...
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> |
...
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> |
...
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> |
...
Exemple AppliExtRestWs
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> |
...
src/main/resources/META-INF/spring/
database.properties
Bloc de code |
---|
|
database.driverClassName=org.postgresql.Driver |
...
database.url=jdbc\:postgresql\://localhost\:5432/esupnfctag |
...
database.username=esupnfctag |
...
Logs
src/main/resources/logback
.xml
...
Obtention du war pour déploiement sur tomcat ou autre :
Bloc de code |
---|
|
cd /opt/esup-nfc-tag-server
mvn clean package |
...
On copie/colle le répertoire webapp packagé ainsi dans le tomcat :
Bloc de code |
---|
|
rm -rf /opt/tomcat-esup-nfc-tag-server/webapps/ROOT && cp -rf /opt/esup-nfc-tag-server/target/esupNfcTagServer-2.0.0-SNAPSHOT /opt/tomcat-esup-nfc-tag-server/webapps/ROOT |
On arrête le tomcat avant et on le redémarre ensuite.
Lancement de la mise à jour de la base de données
Bloc de code |
---|
|
mvn exec:java -Dexec.args="dbupgrade" |
...
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
|
...