Décompresser un serveur tomcat dans /opt/tomcat-carte-culture
Vérifier le connecteur AJP conf/server.xml
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" asyncTimeout="1200000" tomcatAuthentication="false" URIEncoding="UTF-8"/> |
L'authentification repose sur Shibboleth. Apache doit être configuré pour faire du mod_shib.
Une fois le SP Shibboleth et Apache configurés usuellement (voir : https://services.renater.fr/federation/docs/installation/sp), il faut sécuriser certains répertoires en ajoutant ceci à la conf apache (à adapter cependant en fonction des versions d'Apache et mod_shib) :
ProxyPass /Shibboleth.sso ! ProxyPass /secure ! ProxyPass / ajp://localhost:8009/ ttl=10 timeout=3600 loadfactor=100 retry=1 <Location /secure> AuthType shibboleth ShibRequestSetting requireSession 1 require shib-session ShibUseHeaders On </Location> <Location /login> AuthType shibboleth ShibRequestSetting requireSession 1 require shib-session ShibUseHeaders On </Location> <Location /partenaire> 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 /etudiant> 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 /ent> Deny from All Allow from 'ip autorisées' </Location> <Location /ws> Deny from All Allow from 'ip autorisées' </Location> |
Attention, il ne faut pas sécuriser le dossier racine "/" pour laisser l'accès libre à certains web service. |
Configuration PostgreSQL
host all all 127.0.0.1/32 password |
create database carteculture; create USER carteculture with password 'carteculture'; grant ALL ON DATABASE carteculture to carteculture; |
Pensez à paramétrer les espaces mémoire JVM :
export JAVA_OPTS= "-Xms1024m -Xmx1024m -XX:MaxPermSize=256m" |
Pour maven :
export MAVEN_OPTS= "-Xms1024m -Xmx1024m -XX:MaxPermSize=256m" |
cd /opt git clone https: //github .com /EsupPortail/esup-carte-culture |
database.driverClassName=org.postgresql.Driver database.url=jdbc\:postgresql\://localhost\:5432/carteculture database.username=carteculture database.password=carteculture |
ici vous paramétrez l'adresse IP du serveur Esup-Nfc-Tag, l'attribution des roles en fonction des groupes et les différents ldap auxquels on doit accéder.
<http disable-url-rewriting="true" use-expressions="true" entry-point-ref="http403EntryPoint"> ... <intercept-url pattern="/nfc-ws/**" access="hasIpAddress('127.0.0.1') or hasIpAddress('Adresse IP du serveur Esup-Nfc-Tag')" /> ... </http> <beans:bean id="authUserDetailsService" class="org.esupportail.esupnfccarteculture.security.ShibAuthenticatedUserDetailsService"> <beans:property name="mappingGroupesRoles"> <beans:map> <beans:entry key="cn=for.carte-culture.admin,ou=groups,dc=univ-ville,dc=fr" value="ROLE_ADMIN" /> <beans:entry key="cn=for.carte-culture.manager,ou=groups,dc=univ-ville,dc=fr" value="ROLE_MANAGER" /> <beans:entry key="cn=for.carte-culture.partenaire,ou=groups,dc=univ-ville,dc=fr" value="ROLE_PARTENAIRE" /> </beans:map> </beans:property> </beans:bean> <beans:bean id="ldapContextSourceUnivVille" class="org.springframework.ldap.core.support.LdapContextSource"> <beans:property name="url" value="ldap://ldap.univ-ville.fr" /> <beans:property name="base" value="dc=univ-ville,dc=fr" /> <beans:property name="userDn" value="cn=test,dc=univ-ville,dc=fr" /> <beans:property name="password" value="secret" /> </beans:bean> <beans:bean id="ldapContextSourceAutre" class="org.springframework.ldap.core.support.LdapContextSource"> ... </beans:bean> |
Dans ce fichier il faut déclarer les beans LdapTemplate et PersonLdapDao correspondants aux différentx Ldap auxquels on accède.
Le bean TagService permet de paramétrer :
Le bean EtudiantService permet de régler les paramètres suivants:
<bean id="ldapTemplateUnivVille" class="org.springframework.ldap.core.LdapTemplate"> <constructor-arg ref="ldapContextSourceUnivVille" /> </bean> <bean id="ldapTemplateAutre" class="org.springframework.ldap.core.LdapTemplate"> <constructor-arg ref="ldapContextSourceAutre" /> </bean> <bean id="personDaoUnivVille" class="org.esupportail.esupnfccarteculture.ldap.PersonLdapDao"> <property name="ldapTemplate" ref="ldapTemplateUnivVille" /> </bean> <bean id="personDaoAutre" class="org.esupportail.esupnfccarteculture.ldap.PersonLdapDao"> <property name="ldapTemplate" ref="ldapTemplateAutre" /> </bean> <bean id="tagService" class="org.esupportail.esupnfccarteculture.service.TagService"> <property name="nbRechargeMax" value="3" /> <property name="typeSalles"> <list> <bean id="salleJoker" class="org.esupportail.esupnfccarteculture.domain.TypeSalleJoker"> <property name="maxCoupon" value="1" /> <property name="description" value="Coupon utilisable dans tous les types de salle" /> </bean> <bean id="salleCinema" class="org.esupportail.esupnfccarteculture.domain.TypeSalle"> <property name="nom" value="cinema" /> <property name="maxCoupon" value="0" /> <property name="description" value="Coupon cinéma" /> </bean> <bean id="salleTheatre" class="org.esupportail.esupnfccarteculture.domain.TypeSalle"> <property name="nom" value="theatre" /> <property name="maxCoupon" value="1" /> <property name="description" value="Coupon théatre" /> </bean> <bean id="salleAutre" class="org.esupportail.esupnfccarteculture.domain.TypeSalle"> <property name="nom" value="autre" /> <property name="maxCoupon" value="2" /> <property name="description" value="Coupon autre" /> </bean> </list> </property> </bean> <bean id="etudiantService" class="org.esupportail.esupnfccarteculture.service.EtudiantService"> <property name="affichageDetailCoupons" value="true" /> <property name="preInscription" value="true" /> <property name="preInscriptionNomSalle" value="Pré-inscription" /> <property name="autorizedStudentLdapFilter" value="(|(eduPersonAffiliation=student)(eduPersonAffiliation=affiliate))" /> <property name="eppnFilterRegex" value=".*@univ-ville.fr|.*@univ-autre.fr"/> <property name="ldapCsnSearchAttribut" value="supannRefId" /> <property name="ldapCsnMultiValueTag" value="{ISO15693}" /> <property name="ldapCsnMultiValueTagExtractRegex" value="^.*\{ISO15693\}([^;]*).*$" /> </bean> |
cd /opt/esup-carte-culture mvn clean package |
On copie/colle le répertoire webapp packagé ainsi dans le tomcat :
rm -rf /opt/tomcat-carte-culture/webapps/ROOT && cp -rf /opt/esup-carte-culture/target/esupCarteCulture-X.X.X-SNAPSHOT /opt/tomcat-esup-carte-culture/webapps/ROOT |
On arrête le tomcat avant et on le redémarre ensuite.
mvn exec:java -Dexec.args="dbupgrade" |