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 Web Java Discussion :

les annotations @PreAuthorize na marche pas au niveau du controleur


Sujet :

Spring Web Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 6
    Par défaut les annotations @PreAuthorize na marche pas au niveau du controleur
    Bonjour
    j’essaie d'intégrer le framework spring security ds notre projet pour assurer la sécurité de nos contrôleur , mais lorsque j'ajoute les annotations PreAuthorize ds mon contrôleur le framework ne les prends pas en considération et passe directement au contenu de ce dernier

    voici mon 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
    <listener>
       		 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      	</listener>
      	<listener>
        <listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
      </listener>
       <listener>
            <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
        </listener>	
         <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>
                /WEB-INF/AppliKarma-security.xml
            </param-value>
        </context-param>
    	  <filter>
            <filter-name>springSecurityFilterChain</filter-name>
            <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
        </filter>
        <filter-mapping>
          <filter-name>springSecurityFilterChain</filter-name>
          <url-pattern>/*</url-pattern>
        </filter-mapping>
       
      <!--   :	     FIN    ***************************************** -->
    	<servlet>
    	    <servlet-name>AppliKarma</servlet-name>
    	    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    	    <load-on-startup>1</load-on-startup>
    	</servlet>
    et
    le fichier de sécurité
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!--
      - Application context containing authentication, channel
      - security and web URI beans.
      -
      - Only used by "filter" artifact.
      -
      -->
     
    <b:beans xmlns="http://www.springframework.org/schema/security"
        xmlns:b="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/security 
        http://www.springframework.org/schema/security/spring-security-3.1.xsd">
     
    	<global-method-security pre-post-annotations="enabled" proxy-target-class = "true" >
            <expression-handler ref="expressionHandler"/>
        </global-method-security>
        <http realm="AppliKarma Realm"  use-expressions="true">
            <intercept-url pattern="/login.jsp*" access="permitAll"/>
            <intercept-url pattern="/*" access="authenticated"/>
     
            <form-login login-page="/login.jsp" authentication-failure-url="/login.jsp?login_error=1"/>
            <custom-filter ref="requestHeaderFilter" before="FORM_LOGIN_FILTER"/>
        </http>
    	<authentication-manager alias="authenticationManager">
     
    		<authentication-provider ref="karmaAuthenticationProvider" />
    	</authentication-manager>	
     
    	 <b:bean id="expressionHandler" class="org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler">
            <b:property name="permissionEvaluator" ref="permissionEvaluator"/>
        </b:bean>
        <b:bean id="permissionEvaluator" class="com.devoteam.frw.springSecurity.ScopablePermissionEvaluator"/>
     
     
            <b:bean id="loggerListener" class="org.springframework.security.authentication.event.LoggerListener"/>
    		<b:bean id="karmaAuthenticationProvider"
    		      class="com.devoteam.frw.springSecurity.KarmaActiveDirectoryAuthenticationProvider">
    		</b:bean>
     
     
    		 <b:bean id="requestHeaderFilter" class="com.devoteam.frw.springSecurity.KarmaAuthenticationFilter">
     
    		 	 <b:property name="authenticationManager" ref="authenticationManager"/>
    		 </b:bean>
     
    <!--  
        <b:bean id="permissionEvaluator" class="org.springframework.security.acls.AclPermissionEvaluator">
            <b:constructor-arg ref="aclService"/>
        </b:bean>
        -->
    </b:beans>
    et voici le controleur :

    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
    package com.devoteam.ctrl.test;
     
    import java.util.HashMap;
    import java.util.Map;
     
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import org.springframework.security.access.prepost.PreAuthorize;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.servlet.ModelAndView;
    import org.springframework.web.servlet.mvc.AbstractController;
     
     
     
     
     
    public class TestController extends AbstractController {
     
     
     
    	/*@RequestMapping("/test.do")
    	protected ModelAndView doTest (@RequestParam String arg) throws Exception {
    		Map<String, ?> model = new HashMap<String, String>();
    		// TODO Auto-generated method stub
     
    		return new ModelAndView("test",model);
    	}*/
     
    	@Override
    	@PreAuthorize("hasPermission(1,'Salarie','Visu_DossierRH_Full')")
    	protected ModelAndView handleRequestInternal(HttpServletRequest arg0,
    			HttpServletResponse arg1) throws Exception {
    		// TODO Auto-generated method stub
    		Map<String, ?> model = new HashMap<String, String>();
    		// TODO Auto-generated method stub
     
    		return new ModelAndView("test",model);
    	}
     
    }

  2. #2
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Octobre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 16
    Par défaut
    Je pense que le problème réside dans le fichier de sécurité spring, je te file un exemple typique :

    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
     
    <beans:beans xmlns="http://www.springframework.org/schema/security"
                 xmlns:beans="http://www.springframework.org/schema/beans"
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                            http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsd">
     
        <global-method-security pre-post-annotations="enabled">
        </global-method-security>
     
        <http use-expressions="true" auto-config="true">
            <intercept-url pattern="/user/**" access="isAuthenticated()"/>
            <intercept-url pattern="/**" access="permitAll"/>
            <form-login authentication-success-handler-ref="loginSuccess"/>
            <logout logout-success-url="/home/logout.html"/>
            <remember-me/>
            <session-management>
                <concurrency-control max-sessions="1" error-if-maximum-exceeded="true"/>
            </session-management>
        </http>
        <beans:bean id="loginSuccess" class="com.security.LoginSuccessHandler"/>
        <beans:bean id="userDetailsService" class="com.security.UserSecurityService"/>
        <authentication-manager>
            <authentication-provider user-service-ref="userDetailsService">
                <password-encoder hash="md5"/>
            </authentication-provider>
        </authentication-manager>
    </beans:beans>
    Bonne chance

  3. #3
    Nouveau membre du Club
    Inscrit en
    Septembre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 6
    Par défaut
    mais tu n'a pas insérer le PermissionEvaluator ds l'élément PermissionEvaluator global-method-security , je veux pas utiliser le PermissionEvaluator par défaut j'ai besoin de l'implémenter afin de répondre à nos contraintes fonctionnelles :

    NB: lors de l'insertion de la notation ds le jsp ça marche

Discussions similaires

  1. Utlisation d'image pour les <li> qui ne marche pas
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 05/11/2005, 17h37
  2. [CSS] Bug IE avec height ne marche pas avec les %
    Par El Riiico dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 23/06/2005, 17h11
  3. Détection niveau antialisaing max..ne marche pas
    Par Neilos dans le forum DirectX
    Réponses: 7
    Dernier message: 13/05/2005, 22h45
  4. Réponses: 9
    Dernier message: 07/05/2003, 12h57

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