| Astuce | ||
|---|---|---|
| ||
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 | ||
|---|---|---|
|
...
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
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
Passer en perspective "Java"
Clic-droit sur le projet Maven => Enable Dependency Managment.
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_
Là Eclipse retrouve tout tous les pom.xml , : les laisser tous cochés
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)
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 faire ), 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
Resultat Résultat :
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)
| Bloc de code |
|---|
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.26</version>
<configuration>
<contextPath>/</contextPath>
</configuration>
</plugin>
|
Comme on l'a vu précédemment dans 1.2 Méthodologie de développement, esup-commons propose différents types de 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
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 :
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
Et et vérifier que l'authentification l’authentification fonctionne









