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 :

Intercepteurs et Spring


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 6
    Par défaut Intercepteurs et Spring
    Bonjour à tous,

    je suis en train de développer un application Web en utilisant Netbean 6.5 et Spring.

    Au court du développement il est devenu indispensable d'utiliser le mécanisme des intercepteurs notamment pour vérifier si un client est bien authentifier.

    Mon probleme est le suivant:
    je déclare un intercepteur dans le fichier mainController-servlet.xml, ainsi que le mapping d'adresses, mais je ne passe par mon intercepteur que si je map certaines adresses.
    exemple:
    si je map /home.html je ne passerais pas par mon intercepteur alors que si je map /index.html j'y passe.

    Total incompréhension, quelqu'un peut il m'aider.
    merci.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Par défaut
    Salut Programmeur_fou,

    Au court du développement il est devenu indispensable d'utiliser le mécanisme des intercepteurs notamment pour vérifier si un client est bien authentifier.
    si l'utilises Spring, tu peux utiliser aussi Spring security pour répondre à ce besoin

    Je déclare un intercepteur dans le fichier mainController-servlet.xml, ainsi que le mapping d'adresses, mais je ne passe par mon intercepteur que si je map certaines adresses.
    exemple:
    si je map /home.html je ne passerais pas par mon intercepteur alors que si je map /index.html j'y passe.
    C'est normal. Par défaut, il n'intercepte rien.
    C'est à toi de définir ce qu'il doit intercepter à partir d'url en dur à protéger (exemple : /index.html), et ou d'url avec pattern (exemple : toutes les urls qui sont dans le dossier private à la racine de ta webapp-> /private/*) .

    Si ca bug, montre nous ton xml où tu configures ton intercepteur

    PS : Pour le nombre d'* à utiliser, ca dépend du format utilisé par ta classe d'intercepteurs (Spring en a plusieurs).
    Il attend parfois des chemins type ant.

    A++

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 6
    Par défaut
    Voici le code de mon fichier maincontroller-servlet.wml:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:p="http://www.springframework.org/schema/p"
           xmlns:aop="http://www.springframework.org/schema/aop"
           xmlns:tx="http://www.springframework.org/schema/tx"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
     
        <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/>
     
        <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
            <property name="interceptors">
                <list>
                    <bean class="interceptor.Intercptor" />
                </list>
            </property>
     
            <property name="mappings">
                <props>
                    <prop key="menu.do">menuController</prop>
                    <prop key="menulogin.do">menuLoginController</prop>
                    <prop key="left.do">leftController</prop>
                    <prop key="footer.do">footerController</prop>
     
                    <prop key="index.html">homeController</prop>
                    <prop key="products.html">productsController</prop>
     
                </props>
            </property>
        </bean>
     
     
        <bean id="viewResolver"
              class="org.springframework.web.servlet.view.InternalResourceViewResolver"
              p:prefix="/WEB-INF/jsp/"
              p:suffix=".jsp" />
     
        <!--
        The index controller.
        -->
        <bean name="menuController"
              class="controller.MenuController" />
     
        <bean name="menuLoginController"
              class="controller.MenuLoginController" />
     
        <bean name="leftController"
              class="controller.LeftController" />
     
        <bean name="footerController"
              class="controller.FooterController" />
     
        <bean name="homeController"
              class="controller.HomeController" />
     
        <bean name="productsController"
              class="controller.ProductsController" />
     
    </beans>
    et voici le code de mon fichier web.xml:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
        <filter>
            <filter-name>sitemesh</filter-name>
            <filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>sitemesh</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/applicationContext.xml</param-value>
        </context-param>
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
        <servlet>
            <servlet-name>mainController</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <load-on-startup>2</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>mainController</servlet-name>
            <url-pattern>*.html</url-pattern>
        </servlet-mapping>
        <session-config>
            <session-timeout>
                30
            </session-timeout>
        </session-config>
        <welcome-file-list>
            <welcome-file>redirect.jsp</welcome-file>
        </welcome-file-list>
    </web-app>
    en déclarant la balise <url-pattern> je pensais que je spécifiais que je faisais un filtre sur toutes les url de type /*.html et que cela marchait aussi avec les intercepteurs.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Par défaut
    Salut,

    Ton pattern /* tu l'as déclaré pour sitemesh.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     <filter-mapping>
            <filter-name>sitemesh</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
    Ton DispatcherServlet spring qui contient ta pile d'intercepteurs est mappé à *.html dans ton web.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      <servlet-mapping>
            <servlet-name>mainController</servlet-name>
            <url-pattern>*.html</url-pattern>
        </servlet-mapping>
    Si tu veux que tes pages *.html et *.do soit la cible des intercepteurs,
    mappe égalent ta servlet mainController à *.do.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        <servlet-mapping>
            <servlet-name>mainController</servlet-name>
            <url-pattern>*.do</url-pattern>
        </servlet-mapping>  
        <servlet-mapping>
            <servlet-name>mainController</servlet-name>
            <url-pattern>*.html</url-pattern>
        </servlet-mapping>

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 6
    Par défaut
    j'ai fais la correction mais le probleme persiste.

Discussions similaires

  1. Réponses: 0
    Dernier message: 25/03/2009, 11h21
  2. [Framework] [Spring AOP][Web] AOP Vs. Intercepteur Tomcat
    Par AlienQueen dans le forum Spring
    Réponses: 3
    Dernier message: 04/10/2008, 21h02
  3. [Spring MVC] Renvoyer vers une vue depuis un intercepteur
    Par ChtiGeeX dans le forum Spring Web
    Réponses: 2
    Dernier message: 01/04/2007, 10h26
  4. Intercepteurs portables avec VisiBroker 5.2
    Par shellabik dans le forum CORBA
    Réponses: 2
    Dernier message: 10/02/2005, 13h48

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