IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Java Discussion :

[Spring AOP][Web] AOP Vs. Intercepteur Tomcat


Sujet :

Spring Java

  1. #1
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 50
    Par défaut [Spring AOP][Web] AOP Vs. Intercepteur Tomcat
    Bonjour à tous,

    Sur mon projet Tomcat / Spring / Spring MVC, on m'a demandé d'implémenter le besoin suivant :

    ***
    Quand l'utilisateur arrive sur la page de garde, il faut contrôler qu'il est bien authentifié et si ce n'est pas le cas lui renvoyer la page que l'on renverrait normalement sauf que tous ses liens pointent vers une page d'erreur.

    S'il est authentifié, on lui renvoie une page normale avec des liens lui permettant de naviguer dans notre webapp.

    La page de garde est le seul endroit où nous avons besoin de faire cette vérification d'identité, pour diverses raisons. Nous employons une annotation marqueur afin de dire à l'intercepteur que le contrôleur de la page de garde doit faire l'objet de cette vérification.
    ***

    J'ai codé tout cela avec un intercepteur Tomcat en mode "quick & clean" (si si !) mais nous voudrions comparer avec l'AOP puisque nous avons une classe unique (celle du contrôleur de la page de garde) pour laquelle nous voudrions injecter du code de vérification avant son exécution. Voici les avantages et inconvénients que nous voyons aux deux solutions (avant codage de la solution avec AOP) :

    - un intercepteur est quelque chose d'assez standard, alors que l'AOP n'est actuellement pas utilisée dans le projet.

    - Il est un peu dommage d'avoir un test à chaque requête disant si la vérification d'identité doit être faite ou non (solution de l'intercepteur) alors que nous n'avons qu'une classe pour laquelle elle est pertinente.

    - Pour ce que je comprends de l'AOP, le seul moment où notre code de vérification sera appelé sera celui que nous définissons, il n'y aura donc pas de test à chaque requête définissant si nous avons besoin de procéder à la vérification.

    Qu'en pensez-vous ? Quelqu'un a-t-il des choses à rajouter ou enlever ? En particulier, ma perception de l'implémentation Spring de l'AOP est-elle juste ?

    Merci de vos lumières !

  2. #2
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 210
    Par défaut
    L'aop n'est pas fait à proprement parlé pour gérer la sécurité d'une application.

    Tu devrais t'orienter d'avantage vers Spring Security. Son principe est d'identifier/authentifier un utilisateur, de récupérer ses autorisations, et d'en construire un context de sécurité (stocké dans un ThreadLocale).

    La façon d'identifier, authentifier, autoriser... tu es libre d'implémenter tout ca. Mais bien sûr il offre les mécanismes répendus : un javax.servlet.Filter pour les identifications par le Web (http BASIC, cookie de session...), des DAO pour la gestion des roles, des encrypteurs de mot de passe, etc...

    Ensuite, pour sécuriser les appels métier, on peut effectivement utiliser des intercepteurs AOP (SecurityInterceptor). Qui vont vérifier la présence du SecurityContext et des autorisations ...
    Tu peux par exemple n'autoriser que les méthodes de lecture d'un service.

  3. #3
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 50
    Par défaut
    Je pense que mon besoin est différent. Notre webapp fonctionne entièrement en HTTPS avec authentification mutuelle. L'identification dont je parle consiste juste, pour un utilisateur déjà authentifié, à vérifier qu'il a bien droit à accéder à une certaine partie de l'appli. Et comme cette vérification doit avoir lieu à un seul endroit, nous cherchions une solution légère.

    De plus, au niveau "politique", je ne pense pas qu'on m'autorisera à introduire Acegi juste pour cela.

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Je ne vois pas trop le lien entre l'AOP et ton problème qui semble être plus lié à l'IHM qu'autre chose...
    J'ai peut-être raté quelque chose, mais s'il s'agit de tester l'autorisation pour une fonctionnalité présente dans l'IHM, je pense qu'un TagLib serait plus adapté.

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [Framework] Spring Ioc et AOP
    Par java2dev dans le forum Spring
    Réponses: 3
    Dernier message: 27/08/2012, 11h53
  2. [Framework] [Spring 2.5][AOP][XML] Configuration d'un Logger
    Par darkxan dans le forum Spring
    Réponses: 8
    Dernier message: 03/09/2009, 17h19
  3. Spring remoting / Web services / Exceptions handling
    Par bidi dans le forum Services Web
    Réponses: 2
    Dernier message: 04/07/2006, 11h07
  4. [Tomcat]application Web sous eclipse avec Tomcat 5.5.12
    Par toda dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 20/12/2005, 03h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo