Pages enfant
  • 1.3 Découverte avec esup-example

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.
Commentaire: Migrated to Confluence 5.3
Remarquetip
titleBon pour relecture

Installation et démarrage

Remarque
titleA compléter

La suite sur l'exemple

Ce paragraphe non exhaustif permet de découvrir esup-commons V2 au travers du projet esup-example. Ce dernier servira de bac à sable permettant de toucher du doigt les aspects incontournables pour le développement d'un projet.

...

Sommaire :

Sommaire
maxLevel3

...

Installation

A l'aide du plugin Subversion (en perspective "SVN Repository Exploring") faire un checkout de la dernière version stable de esup-example :

Bloc de code
https://subversion.cru.fr/esup-commons/tags/<dernière version>/esup-example

Pour connaître la dernière version release voir : Changelog V2 >> capture faire quand tags

Image Added

Faire un Checkout...

Choisir Check out as a project in the workspace

Nommer le projet "esup-example" et laisser les paramètres par défaut puis Finish

Image RemovedImage Added

Passer en perspective "Java"

Clic-droit sur le projet Maven => Enable Dependency Managment.

Image RemovedImage Added

Comme on l'a dit précédemment, un projet esup-commons est composé de plusieurs sous-projets ou modules situés ici dans des sous-répertoires contenant chacun un fichier pom.xml, qui peuvent être des projets indépendants :

Faire clic-droit sur le projet Import... Import… => Maven => Existing Maven Projects :
Ceci permet de transformer chaque module de Esup_esup-commons en projet à part entière grâce aux fichiers pom.xml déclarés dans les différents répertoires du projet père_

Image RemovedImage Added

Là Eclipse retrouve tout tous les pom.xml , : les laisser tous cochés

Image RemovedImage Added

Cliquer sur Finish et : il construit alors tous les projets.
Ceci permet de lier le projet à ses dépendances Maven déclarées dans les fichiers pom.xml situé situés dans chaque modulesmodule. Il créé un répertoire .m2 s'il n'existe pas. Enfin un petit "M" apparait sur l'icône du projet )

On constate que cette tâche entraîne le téléchargement de toutes les librairies nécessaires, c'est pourquoi elle peut-être relativement longue suivant le nombre de librairies pré-existantes dans votre répertoire .m2 (téléchargées pour d'autres projets)

Image RemovedImage Added

Il peut arriver que les chemin chemins vers des sources soient calculés depuis la racine alors qu'elles que celles-ci se trouvent dans src/main/java, src/main/resources etc. Plutôt que de faire cela manuellement (clic-droit sur le projet => Build Path => Configure Build Path et faire cela à la main ), il suffit de faire un clic-droit sur le projet => Maven => Update Project Configuration.

Puis faire clic-droit sur le projet => Run As => Maven install

Image RemovedImage Added

Resultat Résultat :

Image RemovedImage Added

Démarrage

Un projet esup-commons peut proposer un serveur d'application embraqué embarqué (pour un démarrage standalone) et ceci , de manière presque transparente grâce à Maven et à l'utilisation du plugin Jetty.
Ce plugin se base sur la structuration préconisée par défaut dans un projet maven et retrouve automatiquement la webapp à lancer. A Ainsi, à partir du moment où le projet respecte les standards maven Maven, l'utilisation du plugin jetty ne nécessite pas de configuration supplémentaire (hormis éventuellement un contextPath)

...

Comme on l'a vu précédemment dans 1.2 Méthodologie de développement, esup-commons propose différents type types de projet projets (jsf-mixte, jsf-servlet etc.).
Le démarrage ne peut se faire que sur les modules packagés sous forme de WAR (qui sont donc dépendants des modules sous-jacents packagés en jar)

Dans esup-exemple, plusieurs types de projet sont implémentés il faudra donc choisir.

Via Eclipse : Lancer le projet par un clic-droit sur le projet esup-example-jsf-servlet par exemple Run AS => Maven build... et choisir l'action l’action jetty:run

Image RemovedImage Added

Image RemovedImage Added

On pourra modifier par Run => Run configurations...configurations… et sélectionner "Maven Build"

...

Dans un navigateur lancer localhost :8080... on se trouve redirigé vers l'authentification cas de Rennes mais ça fonctionne 8080… on obtient ceci :

Image Modified

On constate que l'on est authentifié en bourges.

On va maintenant va juste changer la page méthode d'authentification afin de pouvoir se connecter en CAS.

Pour cela, ouvrir /src/main/resources/properties/auth/auth.xml en paramêtrer un CasFilterAuthenticationService à la place du OfflineFixedUserAuthenticationService

Bloc de code

	<bean id="authenticator" lazy-init="true"
		class="org.esupportail.example.services.authentication.AuthenticatorImpl">
                <property name="authenticationService" ref="servletAuthenticationService" />
	</bean>

	<bean id="servletAuthenticationService" lazy-init="true"
		class="org.esupportail.commons.services.authentication.CasFilterAuthenticationService">
	</bean>

Modifier ensuite modifier fichier /src/main/webapp/WEB-INF/web.xml ligne 150 ...et y indiquer l'adresse du votre serveur CAS

Exemple :

Bloc de code
<!-- CAS -->
	<filter>
		<filter-name>CAS Authentication Filter</filter-name>
		<filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
		<init-param>
			<param-name>casServerLoginUrl</param-name>
			<param-value>https://cas.uhp-nancy.fr/cas/login</param-value>
		</init-param>
		<init-param>
			<param-name>serverName</param-name>
			<param-value>http://localhost:8080</param-value>
		</init-param>
	</filter> 

... et 169

Bloc de code
<filter>
		<filter-name>CAS Validation Filter</filter-name>
		<!--
			<filter-class>org.jasig.cas.client.validation.Saml11TicketValidationFilter</filter-class>
		-->
		<filter-class>org.jasig.cas.client.validation.Cas10TicketValidationFilter</filter-class>
		<init-param>
			<param-name>casServerUrlPrefix</param-name>
			<param-value>https://cas.uhp-nancy.fr/cas</param-value>
		</init-param>
		<init-param>
			<param-name>serverName</param-name>
			<param-value>http://localhost:8080</param-value>
		</init-param>
	</filter>

A l'enregistrement l’enregistrement on constate dans la console que ça recharge le projet.

...

Retenter un localhost:8080

Image Removed

Et et vérifier que l'authentification l’authentification fonctionne