Arborescence des pages

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

Bloc de code
languagexml
    <bean id="idp2sTagWriteEsupSgc" class="org.esupportail.nfctag.service.api.impl.TagWriteRestWs">
		<property name="idFromCsnUrlTemplate" value="https://esup-sgc.univ-ville.fr/wsrest/nfc/idFromCsn?csn={0}&amp;appName=access-control"/>
    </bean>

    <bean id="leocodeTagWriteEsupSgc" class="org.esupportail.nfctag.service.api.impl.TagWriteRestWs">
		<property name="idFromCsnUrlTemplate" value="https://esup-sgc.univ-ville.fr/wsrest/nfc/idFromCsn?csn={0}&amp;appName=bu"/>
    </bean>
    
    <bean id="csnDomainTagWriteEsupSgc" class="org.esupportail.nfctag.service.api.impl.TagWriteRestWs">
	    <property name="idFromCsnUrlTemplate" value="https://esup-sgc.univ-ville.fr/wsrest/nfc/idFromCsn?csn={0}&amp;appName=csn-domain"/>
    </bean>

    <bean id="dateLastUpdateEsupSgc" class="org.esupportail.nfctag.service.api.impl.TagLastUpdateRestWs">
    	<property name="wsUrl" value="https://esup-sgc.univ-ville.fr/wsrest/nfc/lastUpdateFromCsn"/>
    </bean>

    
	<bean id="desfireComueTagEsupSgcescnDeuInfoTagWriteEsupSgc" class="org.esupportail.nfctag.service.api.beansimpl.DesfireTag" p:formatBeforeWrite="false" 
p:keyStart="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" p:keyTypeStart="AES" p:keyFinish="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" p:keyTypeFinish="AES" p:keyVersionFinish="01">    
 	<property name="applications">
		<util:list>
			<beanTagWriteRestWs">
        <property name="idFromCsnUrlTemplate" value="https://esup-sgc.univ-ville.fr/wsrest/nfc/getEscDeuInfoEscn?csn={0}"/>
    </bean>

    <bean id="signatureDeuInfoTagWriteEsupSgc" class="org.esupportail.nfctag.beans.DesfireApplication"
				p:desfireAppId="F585C0" p:amks="0B" p:nok="84">
				<property name="files">
					<util:list>
						<beanservice.api.impl.TagWriteRestWs">
        <property name="idFromCsnUrlTemplate" value="https://esup-sgc.univ-ville.fr/wsrest/nfc/getEscDeuInfoSignature?csn={0}"/>
    </bean>

    <bean id="certDeuInfoTagWriteEsupSgc" class="org.esupportail.nfctag.service.api.beansimpl.DesfireFileTagWriteRestWs">
							p:fileNumber="00" p:communicationSettings="03" p:accessRights="1223" p:tagWriteApi-ref="leocodeTagWriteEsupSgc"/>
					</util:list>
				</property>
				<property name="keys">
					<util:list>
						<bean<property name="idFromCsnUrlTemplate" value="https://esup-sgc.univ-ville.fr/wsrest/nfc/getEscDeuInfoCertificat?csn={0}"/>
    </bean>

    <bean id="csnDeuInfoDiversifiedKeyService" class="org.esupportail.nfctag.service.beansdesfire.DesfireKeyDesfireDiversificationService"
							p:keyNo="00" p:keyVer="01" p:key="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"/>
						<bean class>
        <property name="baseKey" value="11111111111111111111111111111111"/>
    </bean>

    <bean id="escnDeuInfoDiversifiedKeyService" class="org.esupportail.nfctag.service.beansdesfire.DesfireKeyDesfireDiversificationService"
							p:keyNo="01" p:keyVer="01" p:key="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"/>
						>
        <property name="baseKey" value="11111111111111111111111111111111"/>
        <property name="tagWriteApi">
          <bean class="org.esupportail.nfctag.service.api.beansimpl.DesfireKeyTagWriteRestWs"
							p:keyNo="02" p:keyVer="01" p:key="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"/>
						<bean>
            <property name="idFromCsnUrlTemplate" value="https://esup-sgc.univ-ville.fr/wsrest/nfc/getEscDeuInfoEscn?csn={0}"/>
          </bean>
        </property>
    </bean>

	<bean id="desfireComueTagEsupSgc" class="org.esupportail.nfctag.beans.DesfireKey"
							p:keyNo="03DesfireTag" p:formatBeforeWrite="false" 
p:keyStart="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" p:keyVerkeyTypeStart="01AES" p:keykeyFinish="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"/>
					</util:list>
				</property>
			</bean> p:keyTypeFinish="AES" p:keyVersionFinish="01">    
 	<property name="applications">
		<util:list>
			<bean class="org.esupportail.nfctag.beans.DesfireApplication"
				p:desfireAppId="F585C1F585C0" p:amks="0B" p:nok="8584">
				<property name="files">
					<util:list>
						<bean class="org.esupportail.nfctag.beans.DesfireFile"
							p:fileNumber="00" p:communicationSettings="03" p:accessRights="14441223" p:fileSizetagWriteApi-ref="1F0000" p:tagWriteApi-ref="idp2sTagWriteEsupSgc"/>leocodeTagWriteEsupSgc"/>
					</util:list>
				</property>
				<property name="keys">
					<util:list>
						<bean class="org.esupportail.nfctag.beans.DesfireFileDesfireKey"
							p:fileNumberkeyNo="0100" p:communicationSettingskeyVer="0301" p:accessRightskey="2444" p:fileSize="1F0000" p:tagWriteApi-ref="idp2sTagWriteEsupSgc"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"/>
						<bean class="org.esupportail.nfctag.beans.DesfireFileDesfireKey"
							p:fileNumberkeyNo="0201" p:communicationSettingskeyVer="0301" p:accessRightskey="3444" p:fileSize="1F0000" p:tagWriteApi-ref="idp2sTagWriteEsupSgcXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"/>
					</util:list>
				</property>
				<property name="keys">
					<util:list>
						<bean class="org.esupportail.nfctag.beans.DesfireKey"
							p:keyNo="0002" p:keyVer="01" p:key="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"/>
						<bean class="org.esupportail.nfctag.beans.DesfireKey"
							p:keyNo="0103" p:keyVer="01" p:key="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"/>
					</util:list>
				</property>
			</bean>
			<bean class="org.esupportail.nfctag.beans.DesfireKeyDesfireApplication"
							p:keyNodesfireAppId="02F585C1" p:keyVeramks="010B" p:keynok="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX85"/>
						<bean<property classname="org.esupportail"files">
					<util:list>
						<bean class="org.esupportail.nfctag.beans.DesfireKeyDesfireFile"
							p:fileNumber="00" p:keyNocommunicationSettings="03" p:accessRights="1444" p:keyVerfileSize="011F0000" p:keytagWriteApi-ref="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXidp2sTagWriteEsupSgc"/>		
						<bean class="org.esupportail.nfctag.beans.DesfireKeyDesfireFile"
							p:keyNofileNumber="01" p:communicationSettings="03" p:accessRights="042444" p:keyVerfileSize="011F0000" p:keytagWriteApi-ref="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXidp2sTagWriteEsupSgc"/>	
					</util:list>
				</property>
			</bean>
			<bean class="org.esupportail.nfctag.beans.DesfireApplicationDesfireFile" 
							p:desfireAppIdfileNumber="F585C202" p:amkscommunicationSettings="0B03" p:nokaccessRights="3444" p:fileSize="1F0000" p:tagWriteApi-ref="86idp2sTagWriteEsupSgc"/>
					</util:list>
				</property>
				<property name="fileskeys">
					<util:list>
						<bean class="org.esupportail.nfctag.beans.DesfireFileDesfireKey"
							p:fileNumberkeyNo="00" p:communicationSettingskeyVer="0301" p:accessRightskey="1FFF" p:tagWriteApi-ref="csnDomainTagWriteEsupSgc"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"/>
						<bean class="org.esupportail.nfctag.beans.DesfireFileDesfireKey"
							p:fileNumberkeyNo="01" p:communicationSettingskeyVer="0301" p:accessRightskey="2FFF" p:tagWriteApi-ref="csnDomainTagWriteEsupSgcXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"/>
						<bean class="org.esupportail.nfctag.beans.DesfireFileDesfireKey"
							p:fileNumberkeyNo="02" p:communicationSettingskeyVer="0301" p:accessRightskey="3FFF" p:tagWriteApi-ref="csnDomainTagWriteEsupSgcXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"/>
						<bean class="org.esupportail.nfctag.beans.DesfireFileDesfireKey"
							p:fileNumberkeyNo="03" p:communicationSettingskeyVer="0301" p:accessRightskey="4FFF" p:tagWriteApi-ref="csnDomainTagWriteEsupSgc"/>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"/>		
						<bean class="org.esupportail.nfctag.beans.DesfireFileDesfireKey"
							p:fileNumberkeyNo="04" p:communicationSettingskeyVer="0301" p:accessRightskey="5FFF" p:tagWriteApi-ref="csnDomainTagWriteEsupSgcXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"/>	
					</util:list>
				</property>
				<property name="keys">
					<util:list>
			</bean>
			<bean class="org.esupportail.nfctag.beans.DesfireKeyDesfireApplication" 
							p:keyNodesfireAppId="00F585C2" p:keyVeramks="010B" p:keynok="86">
				<property name="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXfiles"/>
					<util:list>
						<bean class="org.esupportail.nfctag.beans.DesfireKeyDesfireFile"
							p:fileNumber="00" p:keyNocommunicationSettings="0103" p:keyVeraccessRights="011FFF" p:keytagWriteApi-ref="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXcsnDomainTagWriteEsupSgc"/>
						<bean class="org.esupportail.nfctag.beans.DesfireKeyDesfireFile"
							p:keyNofileNumber="0201" p:communicationSettings="03" p:keyVeraccessRights="012FFF" p:keytagWriteApi-ref="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXcsnDomainTagWriteEsupSgc"/>
						<bean class="org.esupportail.nfctag.beans.DesfireKeyDesfireFile"
							p:fileNumber="02" p:keyNocommunicationSettings="03" p:keyVeraccessRights="013FFF" p:keytagWriteApi-ref="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXcsnDomainTagWriteEsupSgc"/>
						<bean class="org.esupportail.nfctag.beans.DesfireKeyDesfireFile"
							p:fileNumber="03" p:keyNocommunicationSettings="0403" p:keyVeraccessRights="014FFF" p:keytagWriteApi-ref="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXcsnDomainTagWriteEsupSgc"/>
						<bean class="org.esupportail.nfctag.beans.DesfireKeyDesfireFile"
							p:fileNumber="04" p:keyNocommunicationSettings="0503" p:keyVeraccessRights="015FFF" p:keytagWriteApi-ref="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXcsnDomainTagWriteEsupSgc"/>
					</util:list>
				</property>
				</bean>
		</util<property name="keys">
					<util:list>
	</property>
    </bean>

Configuration ESUP-SGC

src/main/resources/META-INF/spring/applicationContext-services.xml

Bloc de code
languagexml
   <!-- used for ldap search on /manager/ldapSearch - super-manager only -->
   <bean id="ldapPersonService" 						<bean class="org.esupportail.nfctag.beans.DesfireKey"
							p:keyNo="00" p:keyVer="01" p:key="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"/>
						<bean class="org.esupportail.sgcnfctag.servicesbeans.ldap.LdapPersonServiceDesfireKey">
        <property name="ldapTemplate" ref="ldapTemplate"/>
        <property name="ldapTemplates">
        	<map>
        		<entry key="Ldap Université de Ville" value-ref="ldapTemplate"/>
        		<entry key="Ldap Comue" value-ref="comueLdapTemplate"/>
        	</map>
        </property>
   </bean>	
 
	<bean id="shibUserInfoService" class="org.esupportail.sgc.services.userinfos.ShibUserInfoService" p:order="1">
		<property name="sgcParam2requestHeader">
			<map>
				<entry key="email" value="mail
							p:keyNo="01" p:keyVer="01" p:key="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"/>
						<bean class="org.esupportail.nfctag.beans.DesfireKey"
							p:keyNo="02" p:keyVer="01" p:key="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"/>
						<bean class="org.esupportail.nfctag.beans.DesfireKey"
							p:keyNo="03" p:keyVer="01" p:key="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"/>
						<bean class="org.esupportail.nfctag.beans.DesfireKey"
							p:keyNo="04" p:keyVer="01" p:key="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"/>
				<entry		<bean class="org.esupportail.nfctag.beans.DesfireKey"
							p:keyNo="05" p:keyVer="01" p:key="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"/>
					</util:list>
				</property>
			</bean>


			<!-- Application DEUINFO de la carte étudiante européenne
			nok A3 : ISO enbaled, 3 AES keys
		    amks OB :  configuration changeable, free directory list access without master key
			-->
            <bean class="org.esupportail.nfctag.beans.DesfireApplication" p:desfireAppId="F58840" p:amks="0B" p:nok="A3" p:isoId="1000" p:isoName="A00000061404F58840">
                <property name="files">
                    <util:list>
                        <!-- ESCN File
                            communicationSettings 00 : communication plain text for clear access
                            accessRights E000 : - read access clear 'E'
                                                - write access '0' master key only
                                                - read/write access clear '0'
                                                - change acces rights '0' master key only
                                                - fileSize : 16bits -> 000010 -> 100000.
                        -->
                        <bean class="org.esupportail.nfctag.beans.DesfireFile"
                                    p:fileNumber="00" p:communicationSettings="00" p:accessRights="E000" p:isoId="1001"
                                    p:tagWriteApi-ref="escnDeuInfoTagWriteEsupSgc" />
 
                        <!-- Signature (71 ou 72 octets) - taille variable  -->
                        <bean class="org.esupportail.nfctag.beans.DesfireFile"
                                    p:fileNumber="01" p:communicationSettings="00" p:accessRights="E000" p:isoId="1002"
                                    p:tagWriteApi-ref="signatureDeuInfoTagWriteEsupSgc" />
                          <!-- Certificat - taille variable  -->
                          <bean class="org.esupportail.nfctag.beans.DesfireFile"
                                p:fileNumber="02" p:communicationSettings="00" p:accessRights="E000" p:isoId="1003"
                                p:tagWriteApi-ref="certDeuInfoTagWriteEsupSgc"/>
                    </util:list>
            </property>
            <property name="keys">
                   <util:list>
                        <!-- master key of deuInfo application : private app master key of the university -->
                        <bean class="org.esupportail.nfctag.beans.DesfireKey"
                              p:keyNo="00" p:keyVer="00" p:key="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" />
                        <!-- deuinfo master key diversified with ESCN -->
                        <bean class="org.esupportail.nfctag.beans.DesfireKey"
                              p:keyNo="01" p:keyVer="00" p:desfireKeyService-ref="escnDeuInfoDiversifiedKeyService" />
                        <!-- deuinfo master key diversified with CSN -->
                        <bean class="org.esupportail.nfctag.beans.DesfireKey"
                             p:keyNo="02" p:keyVer="00" p:desfireKeyService-ref="csnDeuInfoDiversifiedKeyService" />
                  </util:list>
           </property>
        </bean>
	</util:list>
   </property>
</bean>


Configuration ESUP-SGC

src/main/resources/META-INF/spring/applicationContext-services.xml

Bloc de code
languagexml
   <!-- used for ldap search on /manager/ldapSearch - super-manager only -->
   <bean id="ldapPersonService" class="org.esupportail.sgc.services.ldap.LdapPersonService">
        <property name="ldapTemplate" ref="ldapTemplate"/>
        <property name="ldapTemplates">
        	<map>
        		<entry key="Ldap Université de Ville" value-ref="ldapTemplate"/>
        		<entry key="Ldap Comue" value-ref="comueLdapTemplate"/>
        	</map>
        </property>
   </bean>	
 
	<bean id="shibUserInfoService" class="org.esupportail.sgc.services.userinfos.ShibUserInfoService" p:order="1">
		<property name="sgcParam2requestHeader">
			<map>
				<entry key="email" value="mail"/>
				<entry key="firstname" value="givenname"/>
				<entry key="name" value="sn"/>
				<entry key="eduPersonPrimaryAffiliation" value="eduPersonPrimaryAffiliation"/>
				<entry key="supannEtuId" value="supannEtuId"/>
				<entry key="supannEmpId" value="supannEmpId"/>
				<entry key="supannEtuEtape" value="supannEtuEtape"/>
				<entry key="supannEntiteAffectationPrincipale" value="supannEntiteAffectationPrincipale"/>
				<entry key="supannEtablissement" value="supannEtablissement"/>
				<entry key="supannCodeINE" value="supannCodeINE"/>
				<entry key="schacDateOfBirth" value="schacDateOfBirth"/>
				<entry key="recto2" value="givenname"/>
				<entry key="recto3" value="sn"/>
			</map>
		</property>	
	</bean>
	
	<bean id="ldapContextSourcePool" class="org.springframework.ldap.pool.factory.PoolingContextSource">
		<property name="contextSource" ref="ldapContextSource" />
		<property name="dirContextValidator" ref="dirContextValidator"/>
		<property name="testWhileIdle" value="true"/>
		<property name="testOnBorrow" value="true"/>
	</bean>
   
	<bean id="dirContextValidator"
	 class="org.springframework.ldap.pool.validation.DefaultDirContextValidator" />
	
	<bean id="ldapContextSource"
		class="org.springframework.ldap.core.support.LdapContextSource">
		<property name="url" value="ldap://ldap.univ-ville.fr" />
		<property name="base" value="dc=univ-ville,dc=fr" />
		<property name="userDn" value="cn=admin,dc=univ-ville,dc=fr" />
		<property name="password" value="XXXXXXXX" />
	</bean>    
	
	<bean id="ldapTemplate" class="org.springframework.ldap.core.LdapTemplate">
		<constructor-arg ref="ldapContextSourcePool" />
	</bean>
	
	<bean idkey="firstname" value="givenname"/>
				<entry key="name" value="sn"/>
				<entry key="eduPersonPrimaryAffiliation" value="eduPersonPrimaryAffiliation"/>
				<entry key="supannEtuId" value="supannEtuId"/>
				<entry key="supannEmpId" value="supannEmpId"/>
				<entry key="supannEtuEtape" value="supannEtuEtape"/>
				<entry key="supannEntiteAffectationPrincipale" value="supannEntiteAffectationPrincipale"/>
				<entry key="supannEtablissement" value="supannEtablissement"/>
				<entry key="supannCodeINE" value="supannCodeINE"/>
				<entry key="schacDateOfBirth" value="schacDateOfBirth"/>
				<entry key="recto2" value="givenname"/>
				<entry key="recto3" value="sn"/>
			</map>
		</property>	
	</bean>
	
	<bean id="ldapContextSourcePool" class="org.springframework.ldap.pool.factory.PoolingContextSource">
		<property name="contextSource" ref="ldapContextSource" />
		<property name="dirContextValidator" ref="dirContextValidator"/>
		<property name="testWhileIdle" value="true"/>
		<property name="testOnBorrow" value="true"/>
	</bean>
   
	<bean id="dirContextValidator"
	 class="org.springframework.ldap.pool.validation.DefaultDirContextValidator" />
	
	<bean id="ldapContextSource"
		class="org.springframework.ldap.core.support.LdapContextSource">
		<property name="url" value="ldap://ldap.univ-ville.fr" />
		<property name="base" value="dc=univ-ville,dc=fr" />
		<property name="userDn" value="cn=admin,dc=univ-ville,dc=fr" />
		<property name="password" value="XXXXXXXX" />
	</bean>    
	
	<bean id="ldapTemplate" class="org.springframework.ldap.core.LdapTemplate">
		<constructor-arg ref="ldapContextSourcePool" />
	</bean>
	
	<bean id="ldapUserInfoService" class="org.esupportail.sgc.services.userinfos.LdapUserInfoService" p:order="2">
		<property name="eppnFilter" value=".*@univ-ville.fr"/>
		<property name="ldapTemplate" ref="ldapTemplate"/>
		<property name="sgcParam2ldapAttr">
			<map>
				<entry key="email" value="mail"/>
				<entry key="eduPersonPrimaryAffiliation" value="eduPersonPrimaryAffiliation"/>
				<entry key="supannEtuId" value="supannEtuId"/>
				<entry key="supannEmpId" value="supannEmpId"/>
				<entry key="supannCodeINE" value="supannCodeINE"/>
				<entry key="supannEntiteAffectationPrincipale" value="supannEntiteAffectationPrincipale"/>
				<entry key="firstname" value="givenname"/>
				<entry key="name" value="sn"/>
				<entry key="schacDateOfBirth" value="schacDateOfBirth"/>
				<entry key="supannEtablissement" value="supannEtablissement"/>
				<entry key="jpegPhoto4ExternalCard" value="jpegPhoto"/>
				<entry key="recto3" value="givenname"/>
				<entry key="recto2" value="sn"/>
				<entry key="schacExpiryDate" value="schacExpiryDate"/>
			</map>
		</property>	
	</bean>
	
	<bean id="groupService" class="org.esupportail.sgc.services.ldap.LdapGroupService">
		<property name="ldapTemplate" ref="ldapTemplate"/>
		<property name="groupSearchBase" value="ou=groups" />
		<property name="groupSearchFilter" value="member={0}"/>
		<property name="memberSearchBase" value="ou=people"/>
		<property name="memberSearchFilter" value="memberOf={0}"/>
	</bean>
	<!--
	Exemple de sqlUserInfoService. Recupécation des informations utilisateur via une requete SQL
	-->

	<bean class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" id="mysqlDataSource">
		<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
		<property name="url" value="jdbc:mysql://mysql.univ-ville.fr:3306/database"/>
		<property name="username" value="admin"/>
		<property name="password" value="xxxxxxxx"/>
		<property name="testOnBorrow" value="true" />
		<property name="testOnReturn" value="true" />
		<property name="testWhileIdle" value="true" />
		<property name="timeBetweenEvictionRunsMillis" value="1800000" />
		<property name="numTestsPerEvictionRun" value="3" />
		<property name="minEvictableIdleTimeMillis" value="1800000" />
		<property name="validationQuery" value="SELECT version();" />
	</bean>
	
	<bean id="univvilleUserInfoService" class="org.esupportail.sgc.services.userinfos.SqlUserInfoService" p:order="3">
		<property name="eppnFilter" value=".*@univ-ville.fr"/>
		<property name="dataSource" ref="mysqlDataSource"/>
		<property name="sqlQuery" value="select ligneTitre as recto1,
			nom as recto2,
			prenom as recto3,
			dateNaissance as recto4,
			identifiant as recto5,
			ligneAnneeUniv as recto7,
			divers1 as verso1,
			divers2 as verso2,
			divers3 as verso3,
			divers4 as verso4,
			anneeUniv as verso5,
			typepopulationcrous as referenceStatut,
			indiceinm as indice,
			concat(replace(datefindroits,'-',''),'235959Z') as schacExpiryDate,
			leocode as secondaryId,
			adresseFilterLibelle as address
			from SgcLeoCarte where eppn=?"/>
	</bean>
	
	<!-- 
	On s'assure que eduPersonPrimaryAffiliation est conservé
	On fait également en sorte de toujours conserver une email, même si celui-ci n'est plus valide : le crous exige qu'un compte ait toujours un email de présent
	-->
	<bean id="spelUserInfoServiceEPPA" class="org.esupportail.sgc.services.userinfos.SpelUserInfoService" p:order="4">
		<property name="sgcParam2spelExp">
			<map>
				<entry key="eduPersonPrimaryAffiliation" value="#userInfosInComputing['eduPersonPrimaryAffiliation'] == Null or #userInfosInComputing['eduPersonPrimaryAffiliation'] == '' ? 
							#user.eduPersonPrimaryAffiliation : #userInfosInComputing['eduPersonPrimaryAffiliation'] "/>
				<entry key="email" value="#userInfosInComputing['email'] != Null and #userInfosInComputing['email'] matches '.*@.*' ? #userInfosInComputing['email'] : #user.email"/>
			</map>
		</property>	
	</bean>
	
	<!-- 
	On calcule l'institute en fonction de l'eppn
	On calcule le userType en fonction de eduPersonPrimaryAffiliation
	On calcule le template de la carte en fonction de l'eppn
	-->
	<bean id="spelUserInfoService" class="org.esupportail.sgc.services.userinfos.SpelUserInfoService" p:order="5">
		<property name="sgcParam2spelExp">
			<map>
				<entry key="institute" value=" 
					#user.eppn matches '.*@univ-ville.fr' ? 'Université de Ville' :
					#user.eppn matches '.*@univ-village.fr' ? 'Université du Village' :
					#user.eppn matches '.*@ecole-ville.fr' ? 'Ecolde de Ville' :
					#user.eppn matches '.*@comue.fr' ? 'COMUE' :
					'Extérieur'"/>
				<entry key="userType" value="!(#user.eppn matches '.*@univ-ville.fr') ? 'Ext' : 
					#userInfosInComputing['eduPersonPrimaryAffiliation'] == 'student' ? 'E' : 
					#userInfosInComputing['eduPersonPrimaryAffiliation'] == 'staff' or #userInfosInComputing['eduPersonPrimaryAffiliation'] == 'teacher' or #userInfosInComputing['eduPersonPrimaryAffiliation'] == 'employee' ? 'P' : 'I'"/>
				<entry key="template" value="#user.eppn matches '.*@univ-ville.fr' ? 'univ-ville' : 'undefined'"/>
			</map>
		</property>	
	</bean>
	
	<!-- 
	Si recto1 et recot4 non trouvé (dans la Base de Données ici) on les calcule en fonction du userType et de schacDateOfBirth
	on reformatte recto7 : 2017/2018 -> 2017<br/>2018 - cf propriété recto7Replace donnée dans sgc.properties
	-->
	<bean id="spelUserInfoService2" class="org.esupportail.sgc.services.userinfos.SpelUserInfoService" p:order="6">
		<property name="sgcParam2spelExp">
			<map>
				<entry key="recto1" value="#userInfosInComputing['recto1'] != Null ? #userInfosInComputing['recto1'] : 
					#userInfosInComputing['userType']  == 'E' ? 'étudiant' : 
					#userInfosInComputing['userType'] == 'P' ? 'professionnelle' : 
					#userInfosInComputing['userType'] == 'I' ? 'invité' :  
					'extérieur'"/>
				<entry key="recto4" value="#userInfosInComputing['recto4'] != Null ? #userInfosInComputing['recto4'] : 
					#userInfosInComputing['schacDateOfBirth']  != Null ? 'Né le : ' + #dateUtils.schadDateOfBirthDay2FrenchDate(#userInfosInComputing['schacDateOfBirth']) : ''"/>
				<entry key="recto7" value="${recto7Replace}"/>
			</map>
		</property>	
	</bean>
 
	<!-- 
	requestFree à false pour les étudiants ayant une carte de moins de 3ans *par rapport au 6 juillet de l'année de demande de la carte*  
	les cartes avant le 29/06/2018 (anciennes leocartes) ne sont pas prises en compte
	-->
	<bean id="requestNotFreeUserInfoService" class="org.esupportail.sgc.services.userinfos.SqlUserInfoService" p:order="8">
		<property name="eppnFilter" value=".*@univ-ville.fr"/>
		<property name="dataSource" ref="dataSource"/>
		<property name="sqlQuery" value="select (not exists (select c.id from card as c, 
			user_account as u 
			where c.request_date > (select x from (SELECT to_date('06.07.' || date_part('year', current_timestamp)-2, 'DD.MM.YYYY') as x 
			union SELECT to_date('06.07.' || date_part('year', current_timestamp)-3, 'DD.MM.YYYY') as x) AS d 
			where current_timestamp-d.x > INTERVAL '2 year' order by x desc limit 1) 
			and c.eppn=u.eppn and u.edu_person_primary_affiliation='student' 	
			and c.request_date > '2018-05-28'		 
			and u.eppn = ?)) ::text as requestFree"/>
	</bean>
 
 
	
	<bean id="comueLdapContextSourcePool" class="org.springframework.ldap.pool.factory.PoolingContextSource">
      <property name="contextSource" ref="comueLdapContextSource" />
      <property name="dirContextValidator" ref="comueDirContextValidator"/>
      <property name="testWhileIdle" value="true"/>
      <property name="testOnBorrow" value="true"/>
   </bean>
   
   <bean id="comueDirContextValidator"
         class="org.springframework.ldap.pool.validation.DefaultDirContextValidator" />
	
    <bean id="comueLdapContextSource"
		class="org.springframework.ldap.core.support.LdapContextSource">
		<property name="url" value="ldaps://ldap.comue.fr" />
		<property name="base" value="dc=unr-runn,dc=fr" />
		<property name="userDn" value="cn=esup-sgc-univ-ville,ou=system,dc=comue,dc=fr" />
		<property name="password" value="XXXXXXXX" />
	</bean>    
	
	<bean id="comueLdapTemplate" class="org.springframework.ldap.core.LdapTemplate">
		<constructor-arg ref="comueLdapContextSourcePool" />
	</bean>
	
	<bean id="comueLdapUserInfoService" class="org.esupportail.sgc.services.userinfos.LdapUserInfoService" p:order="2">
		<property name="eppnFilter" value="^((?!@univ-ville\.fr).)*$"/>
		<property name="ldapTemplate" ref="comueLdapTemplate"/>
		<property name="sgcParam2ldapAttr">
			<map>
				<entry key="email" value="mail"/>
				<entry key="eduPersonPrimaryAffiliation" value="eduPersonPrimaryAffiliation"/>
				<entry key="firstname" value="givenname"/>
				<entry key="name" value="sn"/>
				<entry key="schacDateOfBirth" value="schacDateOfBirth"/>
				<entry key="supannEtablissement" value="supannEtablissement"/>
				<entry key="supannRefId4ExternalCard" value="supannRefId"/>
				<entry key="jpegPhoto4ExternalCard" value="jpegPhoto"/>
				<entry key="recto3" value="givenname"/>
				<entry key="recto2" value="sn"/>
				<entry key="schacExpiryDate" value="schacExpiryDate"/>
			</map>
		</property>	
	</bean>
 
	<bean id="comueSpelUserInfoService" class="org.esupportail.sgc.services.userinfos.SpelUserInfoService" p:order="4">
		<property name="eppnFilter" value="^((?!@univ-ville\.fr).)*$"/>
		<property name="sgcParam2spelExp">
			<map>
				<entry key="secondaryId" value="${leocodeReplace}"/>
				<entry key="access-control4ExternalCard" value="${accesscontrolReplace}"/>
                <entry key="csn4ExternalCard" value="${csnReplace}"/>
			</map>
		</property>	
	</bean>
	
	
	<bean id="cardIdsService" class="org.esupportail.sgc.services.cardid.CardIdsService">
		<property name="cardIdServices">
			<list>
				<bean class="org.esupportail.sgc.services.cardid.ComueNuAccessControlCardIdService">
					<!-- warning : access-control is a keyword for access-control services :
						org.esupportail.sgc.services.ac.AccessControlService.AC_APP_NAME = 'access-control'
					 -->
					<property name="appName" value="access-control"/>
					<property name="idCounterBegin" value="XXXXXXXXXXXXXXXX"/>
					<property name="postgresqlSequence" value="card_sequence"/>
				</bean>
				<bean class="org.esupportail.sgc.services.cardid.ComueNuBuCardIdService">
					<property name="appName" value="bu"/>
				</bean>
                <bean class="org.esupportail.sgc.services.cardid.CsnDomainCardIdService">
                    <property name="appName" value="csn-domain"/>
                </bean>
			</list>
		</property>
	</bean>
	
	<bean id="esupNfcTagService" class="org.esupportail.sgc.services.EsupNfcTagService">
		<property name="restTemplate" ref="restTemplate"/>
		<property name="webUrl" value="https://esup-nfc-tag.univ-ville.fr"/>
		<property name="applicationName" value="Ecriture SGC"/>	
		<property name="location" value="Encodage ESUP SGC"/>
	</bean>
	
	<bean id="ldapAdminContextSourcePool" class="org.springframework.ldap.pool.factory.PoolingContextSource">
		<property name="contextSource" ref="ldapAdminContextSource" />
		<property name="dirContextValidator" ref="dirContextValidator"/>
		<property name="testWhileIdle" value="true"/>
		<property name="testOnBorrow" value="true"/>
	</bean>
	
	<bean id="ldapAdminContextSource"
		class="org.springframework.ldap.core.support.LdapContextSource">
		<property name="url" value="ldap://ldap.univ-ville.fr" />
		<property name="base" value="dc=univ-ville,dc=fr" />
		<property name="userDn" value="cn=admin,dc=univ-ville,dc=fr" />
		<property name="password" value="XXXXXXXX" />
	</bean>    
	
	<bean id="ldapAdminTemplate" class="org.springframework.ldap.core.LdapTemplate">
		<constructor-arg ref="ldapAdminContextSourcePool" />
	</bean>
	
	<bean id="ldapValidateService" class="org.esupportail.sgc.services.ldap.LdapValidateService">
		<property name="ldapTemplate" ref="ldapAdminTemplate"/>
		<property name="peopleSearchFilter" value="(eduPersonPrincipalName={0})"/>
		<property name="ldapCardIdsMappingMultiValues">
			<map>
				<entry key="swissEduPersonCardUID">
					<list>
						<value>%reverse_csn%@ISO15693</value>
					</list>
				</entry>
				<entry key="supannRefId">
					<list>
						<value>{ISO15693}%csn%</value>
						<value>{LEOCARTE:ACCESS-CONTROL}%access-control%</value>
					</list>
				</entry>
			</map>
		</property>
             <!-- 
		<property name="ldapCardIdsMappingValue">
			<map>
				<entry key="jpegPhoto" value="%photo%"/>
			</map>
	        </property>
 			-->
	</bean>
	
	<bean id="adContextSourcePool" class="org.springframework.ldap.pool.factory.PoolingContextSource">
		<property name="contextSource" ref="adContextSource" />
		<property name="dirContextValidator" ref="dirContextValidator"/>
		<property name="testWhileIdle" value="true"/>
		<property name="testOnBorrow" value="true"/>
	</bean>
	 
	<bean id="adContextSource"
		class="org.springframework.ldap.core.support.LdapContextSource">
		<property name="url" value="ldaps://ad.univ-ville.fr:636" />
		<property name="base" value="DC=ur,DC=univ-ville,DC=fr"/>
		<property name="pooled" value="true" />
		<property name="userDn"	value="cn=Administrateur,cn=users,dc=ur,dc=univ-ville,dc=fr"/>
		<property name="password" value="XXXXXXXX" />
	</bean>
	
	<bean id="adLdapTemplate" class="org.springframework.ldap.core.LdapTemplate">  
		<constructor-arg ref="adContextSourcePool" />
		<property name="ignorePartialResultException" value="true"/>
	</bean>
	<bean id="adValidateService" class="org.esupportail.sgc.services.ldap.LdapValidateService">
		<property name="ldapTemplate" ref="adLdapTemplate"/>
		<property name="peopleSearchFilter" value="(&amp;(objectClass=person)(cn={1}))"/>
		<property name="ldapCardIdsMappingValue">
			<map>
				<entry key="pager">
					<value>%csn%</value>
				</entry>
			</map>
		</property>
	</bean>
	<bean id="ipService" class="org.esupportail.sgc.services.IpService">
	    <property name="maps">
			<bean class="org.springframework.beans.factory.config.PropertiesFactoryBean">
				<property name="location" value="classpath:ip.properties"/>
			</bean>
		</property>
	</bean>
	<bean class="org.springframework.mail.javamail.JavaMailSenderImpl" id="mailSender">
		<property name="host" value="${email.host}"/>
		<property name="protocol" value="${email.protocol}"/>
	</bean>
    
	<bean id="emailService" class="org.esupportail.sgc.services.EmailService">
		<property name="mailSender" ref="mailSender"/>
		<property name="isEnabled" value="true"/>
	</bean>


	<bean id="papercutValidateService" class="org.esupportail.sgc.services.papercut.PapercutService">
		<property name="authToken" value="tokenPapercutUnivVille" />
		<property name="server" value="papercut.univ-ville.fr" />
		<property name="scheme" value="https" />
		<property name="port" value="443" />
		<property name="accountName" value="" />
		<property name="papercutUidFromEppnRegex" value="([^@]*)@.*"/>
	</bean>
	
	<bean id="comueRefSiRestValidateService" class="org.esupportail.sgc.services.AsyncRestValidateService">
		<property name="use4ExternalCard" value="true"/>
		<property name="delay" value="10000"/>
	    <property name="restTemplate" ref="comueRefSiRestTemplate"/>
	    <property name="validateRestUrl" value="https://referentiel.comue.fr/maj/%s"/>
	    <property name="invalidateRestUrl" value="https://referentiel.comue.fr/maj/%s"/>
	</bean>
	
	<bean id="comueRefSiRestTemplate" class="org.esupportail.sgc.tools.RestTemplateClientCertBuilder">
        <property name="certFile" value="classpath:META-INF/security/certif-esup-sgc.p12"/>
        <property name="password" value="passwordducertif"/>
    </bean>

...

Bloc de code
recto7Replace=#userInfosInComputing['recto7'] != Null ? #userInfosInComputing['recto7'].replaceAll('/','<br/>') : ''
accesscontrolReplace : ''
accesscontrolReplace=#userInfosInComputing['supannRefId4ExternalCard'] != Null ? #userInfosInComputing['supannRefId4ExternalCard'].replaceFirst('^.*\\{LEOCARTE:ACCESS-CONTROL\\}([^;]*).*$', '$1') : ''           
csnReplace=#userInfosInComputing['supannRefId4ExternalCard'] != Null ? #userInfosInComputing['supannRefId4ExternalCard'].replaceFirst('^.*\\{LEOCARTE:ACCESS-CONTROLISO15693\\}([^;]*).*$', '$1') : ''                          
csnReplaceleocodeReplace=#userInfosInComputing['supannRefId4ExternalCard'] != Null ? #userInfosInComputing['supannRefId4ExternalCard'].replaceFirst('^.*\\{ISO15693LEOCODE\\}([^;]*).*$', '$1') : ''   

src/main/resources/META-INF/spring/applicationContext-crous.xml

Bloc de code
	<bean id="httpClientFactory"
		class="org.springframework.http.client.HttpComponentsClientHttpRequestFactory">
		<property name="connectTimeout" value="10000" />
		<property name="readTimeout" value="10000" />
		<property name="httpClient" ref="httpClient"/>
	</bean>
	<bean id="restTemplate" class="org.springframework.web.client.RestTemplate">
		<constructor-arg ref="httpClientFactory" />
	</bean>
	
	<bean id="httpClientBuilder" class="org.apache.http.impl.client.HttpClientBuilder"
	           
leocodeReplace=#userInfosInComputing['supannRefId4ExternalCard'] != Null ? #userInfosInComputing['supannRefId4ExternalCard'].replaceFirst('^.*\\{LEOCODE\\}([^;]*).*$', '$1') : ''   

src/main/resources/META-INF/spring/applicationContext-crous.xml

Bloc de code
factory-method="create">
	    <property name="connectionReuseStrategy">
	    	<bean class="org.apache.http.impl.NoConnectionReuseStrategy"/>
	    </property>
	</bean>
	
	<bean id="httpClient" factory-bean="httpClientBuilder" factory-method="build" />
	<bean id="httpClientFactoryapiCrousService"
		 class="org.esupportail.springframeworksgc.httpservices.client.HttpComponentsClientHttpRequestFactory"crous.ApiCrousService">
		<property name="enable" value="true"/>
		<property name="connectTimeoutwebUrl" value="10000https://api.lescrous.fr/v1" />
		<property name="readTimeoutappId" value="10000XXXXXXXX" />
		<property name="httpClientappSecret" refvalue="httpClientXXXXXXXXXXXXXXXXXXXXXX" />
	</bean>
	<bean<property idname="restTemplate" class="org.springframework.web.client.RestTemplate">
		<constructor-arg ref="httpClientFactoryrestTemplate" />
	</bean>
	
	
	<bean id="httpClientBuilderesistCrousService" class="org.apacheesupportail.httpsgc.implservices.clientcrous.HttpClientBuilderEsistCrousService">
		    factory-method<property name="createesistFiles">
			<list>
				    <property name="connectionReuseStrategy">
	    	<bean class="org.apache.http.impl.NoConnectionReuseStrategy"/>
	    <!-- value>esist/ESIST-cnrs.xml</value-->
				<value>esist/ESIST-02012018-no-hbg.xml</value>
			</list>
		</property>
	</bean>
	
	<bean id="httpClient" factory-bean="httpClientBuilder" factory-method="build" />
	<bean id="apiCrousService" europeanStudentCardService" class="org.esupportail.sgc.services.crousesc.ApiCrousServiceApiEscrService">
		<property name="enable" value="truefalse"/>
		<property name="webUrl" value="httpshttp://api-sandbox.lescrouseuropeanstudentcard.freu/v1" />
		<property name="appIdkey" value="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" />
		<property name="appSecret" value="XXXXXXXXXXXXXXXXXXXXXX" />
		<property name="restTemplate" ref="restTemplate" />
	</bean>
	
	
	<bean<property idname="esistCrousService" class="org.esupportail.sgc.services.crous.EsistCrousService"countryCode" value="FR"/>
		<property name="picInstitutionCode" value="esistFilesXXXXXXXXXX"/>
			<list>
				<!-- value>esist/ESIST-cnrs.xml</value-->
				<value>esist/ESIST-02012018-no-hbg.xml</value>
			</list>
		</property>
	</bean>

	<bean id="europeanStudentCardService" class="org.esupportail.sgc.services.esc.ApiEscrService">
		<property name="enable" value="false"/>
		<property name="webUrl" value="http://api-sandbox.europeanstudentcard.eu/v1" />
Type of cards. Possibles values are :
		1 - passive card, with no electronic
		2 - Smartcard without European common data zone
		3 - Smartcard with European common data zone
		4 - Smartcard on which application may be installed by service providers
		 -->
 		<property name="keycardType" value="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX2" />
		        <property name="restTemplatecardTypes" ref="restTemplate" />
		<property name="countryCode" value="FR"/>
		<property name="picInstitutionCode>
          <map>
            <entry key="2021-03-25 10:41:00" value="XXXXXXXXXX3"/>
		<!-- 
		Type of cards. Possibles values are :
		1 - passive card, with no electronic
		2 - Smartcard without European common data zone
		3 - Smartcard with European common data zone
		4 - Smartcard on which application may be installed by service providers
		 -->
  </map>
         </property>
	</bean>

	<bean id="escUidFactoryService" class="org.esupportail.sgc.services.esc.EscUidFactoryService">
		<property name="pic" value="XXXXXXXXX"/>
		<property name="prefixe" value="1 " />
		<property name="cardTypeqrCodeUrlPrefixe" value="2"http://pp.esc.gg/" />
	</bean>


	<bean id="escUidFactoryServiceescDeuInfoService" class="org.esupportail.sgc.services.esc.EscUidFactoryServiceEscDeuInfoService">
    		<property name="pic" value="XXXXXXXXXle-code-pic-de-letablissement"/>
	    	<property name="prefixedeuInfoPrivateKey" value="1 " classpath:META-INF/security/esc/ca.intermediate.key.der"/>
	    	<property name="qrCodeUrlPrefixedeuInfoPublicKey" value="httpclasspath:META-INF/security/esc/ppca.intermediate.esccert.gg/der" />
	</bean>

</beans>

src/main/resources/META-INF/spring/applicationContext-acces-control.xml 

...