Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Java Spring
  3. Spring dans un contexte web JSP
Extrait - Java Spring Le socle technique des applications Jakarta EE (4e édition)
Extraits du livre
Java Spring Le socle technique des applications Jakarta EE (4e édition) Revenir à la page d'achat du livre

Spring dans un contexte web JSP

Spring MVC

Spring MVC permet de créer facilement une application web dans un conteneur léger comme Tomcat ou Jetty. Il permet de servir une interface homme-machine (IHM) avec JSP ou JSF ou un autre moteur de rendu comme Thymeleaf et d’exposer des API SOAP et REST. Il est très simple d’emploi et permet d’avoir une très bonne couverture de tests. Il est possible d’utiliser une configuration basée sur des fichiers XML ou sur les annotations. Comme pour les autres types d’applications Spring, les configurations annotées sont à préférer car elles sont plus facilement maintenables. Nous présentons dans ce chapitre les deux types de configurations car les anciens projets utilisent encore la version basée sur les fichiers XML. Les services web SOAP et REST utilisent parfois Spring MVC en conjonction avec Jersey et Apache CXF.

Ce chapitre se concentre sur Spring MVC sans Spring Boot qui fera l’objet d’un chapitre dédié (Spring Boot). Normalement, pour les nouveaux projets, on n’utilise plus les JSP. Théoriquement les pages JSP ont été remplacées par les pages JSF mais dans la pratique les SPA (Single Page Applications) ont pris le pas sur les JSP (et JSF). Cependant, on utilise toujours des parties initialement prévues dans le cadre d’une utilisation JSF avec le RestTemplate, qui permet une utilisation simplifiée de Spring MVC dans le cadre d’un usage avec des serveurs REST. Il reste néanmoins intéressant de connaître cette partie pour pouvoir faire de la maintenance et pour pouvoir passer certains tests techniques lors des recrutements.

Nous utiliserons de préférence le WebClient de la stack réactive pour les nouveaux projets qui font du Spring MVC (bloquants) car RestTemplate ne va plus évoluer au profit des évolutions sur le WebClient. Le WebClient est en effet un client normal bloquant et un client réactif. Le WebClient est détaillé dans le chapitre intitulé Introduction à Spring Reactor et Spring Webflux.

Comme pour beaucoup de modules Spring, nous trouvons sur les projets des configurations mélangeant plusieurs styles correspondant à plusieurs époques de programmation. Ce chapitre montre d’anciennes et de nouvelles façons d’utiliser...

Spring Security

1. Introduction à Spring Security

Spring Security permet de sécuriser les applications à différents niveaux. Spring utilise des aspects (AOP) pour intercepter des méthodes et ajouter un contexte de sécurité.

images/09EP01N.png

Il s’articule autour de quatre concepts :

Principal

L’utilisateur, le système ou l’appareil qui fait une action.

Authentification

Vérification de la validité des droits du Principal.

Autorisation

Vérification que l’action est autorisée pour le Principal. 

Ressource sécurisée

La ressource pour laquelle il faut vérifier les droits d’accès.

Il existe plusieurs mécanismes d’authentification basés sur :

  • un mécanisme ultra basique,

  • un digest,

  • un formulaire,

  • un accès X-509 (LDAP par exemple),

  • des cookies,

  • SSO (Single Sign-On).

Quand cela est possible, il est conseillé d’utiliser le SSO afin de réutiliser les identifiants de la session de son poste de travail.

Pour les applications très sensibles, il est possible d’utiliser un lecteur de carte à puce ou d’utiliser un système à token (système basé sur un nombre affiché sur un boîtier ou une calculette qui change toutes les x secondes).

À cette authentification peuvent être associés des droits qui sont enregistrés :

  • en dur dans un programme pendant le cycle de développement,

  • dans un fichier .properties,

  • dans une base de données (SQL, NoSQL via un DAO classique),

  • dans une base LDAP,

  • dans un système externe dédié.

Pour déterminer si une action est possible, il faut tout d’abord vérifier qui fait la demande en utilisant le mécanisme d’authentification. Nous pouvons définir qu’un utilisateur qui n’est pas encore identifié est considéré comme un invité (GUEST). Le système le plus simple peut alors considérer un utilisateur standard comme membre (MEMBER) s’il s’agit d’un utilisateur n’ayant pas des droits d’administration. Un utilisateur administrateur a, quant à lui, un rôle administrateur (ADMIN). Ces trois rôles : GUEST, MEMBER, ADMIN sont les rôles de base dans Spring Security.

Nous verrons qu’il est aussi prévu...

Points clés

  • Spring MVC est très puissant et permet de faire beaucoup de choses.

  • Spring MVC avec JSP a permis de remplacer Struts 1.

  • Nous pouvons tester la majorité de notre code.

  • Le mode MVC standardise la façon de faire l’application.