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

JSF Java Discussion :

jsf et spring security


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 89
    Par défaut jsf et spring security
    Bonjour
    je travaille sur un projet avec comme technologie: jsf, RichFaces, spring security pour gérer les logins et protéger mes pages jsp.
    Voici mon probleme:
    Quand je définis un access"ROLE_USER" au démarrage de l'application j'ai cette erreur alors si je fait access="" ça passe voici le log:
    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
     
    java.lang.RuntimeException: Cannot find FacesContext
            at javax.faces.webapp.UIComponentClassicTagBase.getFacesContext(UIComponentClassicTagBase.java:1855)
            at javax.faces.webapp.UIComponentClassicTagBase.setJspId(UIComponentClassicTagBase.java:1672)
            at org.apache.jsp.index_jsp._jspx_meth_f_view_0(index_jsp.java from :134)
            at org.apache.jsp.index_jsp._jspService(index_jsp.java from :109)
            at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:109)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
            at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:403)
            at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:473)
            at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:366)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
            at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:431)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:337)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:218)
            at org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:169)
            at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
            at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:250)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:218)
            at org.apache.catalina.core.StandardWrapperValve.preInvoke(StandardWrapperValve.java:460)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:139)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:186)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:719)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:657)
            at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:96)
            at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:187)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:719)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:657)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:651)
            at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1030)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:142)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:719)
            at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:657)
            at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:651)
            at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1030)
            at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:242)
            at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:180)
            at com.sun.grizzly.http.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:633)
            at com.sun.grizzly.http.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:570)
            at com.sun.grizzly.http.DefaultProcessorTask.process(DefaultProcessorTask.java:827)
            at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:152)
            at com.sun.enterprise.v3.services.impl.GlassfishProtocolChain.executeProtocolFilter(GlassfishProtocolChain.java:71)
            at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:103)
            at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:89)
            at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
            at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:67)
            at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:56)
            at com.sun.grizzly.util.WorkerThreadImpl.processTask(WorkerThreadImpl.java:325)
            at com.sun.grizzly.util.WorkerThreadImpl.run(WorkerThreadImpl.java:184)
    pour infos voici ma configuration:
    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
    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
     
    <?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">
     
     
        <context-param>
            <param-name>com.sun.faces.verifyObjects</param-name>
            <param-value>false</param-value>
        </context-param>
     
        <context-param>
            <param-name>javax.faces.CONFIG_FILES</param-name>
            <param-value>/WEB-INF/faces-config.xml</param-value>
        </context-param>
     
     
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:xxxxx-security.xml</param-value>
        </context-param>
     
        <context-param>
            <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
            <param-value>client</param-value>
        </context-param>
     
        <context-param>
            <param-name>com.sun.faces.validateXml</param-name>
            <param-value>true</param-value>
        </context-param>
        <context-param>
            <param-name>org.richfaces.SKIN</param-name>
            <param-value>plain</param-value>
        </context-param>
     
         <!-- ************************** Listener Spring **************************** -->
        <listener>
            <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
        </listener>
     
        <!--listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener-->
     
        <servlet>
            <servlet-name>SpringContextServlet</servlet-name>
            <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>
     
        <listener>
            <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
        </listener>
     
        <!-- Faces Servlet -->
        <servlet>
            <servlet-name>Faces Servlet</servlet-name>
            <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>
     
    <!-- Faces Servlet Mapping -->
        <servlet-mapping>
            <servlet-name>Faces Servlet</servlet-name>
            <url-pattern>/faces/*</url-pattern>
        </servlet-mapping>
        <servlet-mapping>
            <servlet-name>Faces Servlet</servlet-name>
            <url-pattern>*.faces</url-pattern>
        </servlet-mapping>
        
        <filter>
            <display-name>RichFaces Filter</display-name>
            <filter-name>richfaces</filter-name>
            <filter-class>org.ajax4jsf.Filter</filter-class>
        </filter>
     
        <filter-mapping>
            <filter-name>richfaces</filter-name>
            <servlet-name>Faces Servlet</servlet-name>
            <dispatcher>REQUEST</dispatcher>
            <dispatcher>FORWARD</dispatcher>
            <dispatcher>INCLUDE</dispatcher>
        </filter-mapping>
     
    <!-- ************************* Filter Config ******************************* -->
        <filter>
            <filter-name>springSecurityFilterChain</filter-name>
            <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
        </filter>
     
    <!-- ************************** Filter Mappings **************************** -->
        <filter-mapping>
            <filter-name>springSecurityFilterChain</filter-name>
            <url-pattern>/*</url-pattern>
            <dispatcher>FORWARD</dispatcher>
            <dispatcher>REQUEST</dispatcher>
        </filter-mapping>
       
        <welcome-file-list>
            <welcome-file>faces/index.html</welcome-file>
        </welcome-file-list>
     
    </web-app>
    faces-config.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
     
    <?xml version='1.0' encoding='UTF-8'?>
     
    <!-- =========== FULL CONFIGURATION FILE ================================== -->
     
    <faces-config version="1.2" 
        xmlns="http://java.sun.com/xml/ns/javaee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     
        <managed-bean>
            <managed-bean-name>connection</managed-bean-name>
            <managed-bean-class>package.Maclasse</managed-bean-class>
            <managed-bean-scope>session</managed-bean-scope>
        </managed-bean>
     
        <application>
            <variable-resolver>
                org.springframework.web.jsf.DelegatingVariableResolver
            </variable-resolver>
            <locale-config />
        </application>
    </faces-config>
    xxxx-security.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
    36
    37
    38
    39
    40
    41
    42
     
     
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:security="http://www.springframework.org/schema/security"
    	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-2.5.xsd
                  		http://www.springframework.org/schema/security
                  		http://www.springframework.org/schema/security/spring-security-2.0.4.xsd">
     
     
    <!--  Déclaration de la DATASOURCE -->
     
    	<bean id="dataSource"
    		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    		<property name="driverClassName" value="com.mysql.jdbc.Driver" />
    		<property name="url" value="jdbc:mysql://localhost:3306/base?autoReconnect=true" />
    		<property name="username" value="login" />
    		<property name="password" value="password" />
    	</bean>
     
     
    	<!-- Stratégie de Sécurité : ressources et Remember me -->
    	<security:http auto-config="true">
            <security:intercept-url pattern="/index.jsp" filters="none"/>		
    		<security:form-login login-page="/index.jsp" default-target-url="/forms/index.jsp"
                    always-use-default-target="true" />
                    <security:logout logout-url="/j_spring_security_logout" invalidate-session="true" />
    		<security:intercept-url pattern="/**" access="ROLE_USER"/>
    	</security:http>
     
     
    <security:authentication-provider user-service-ref='myUserDetailsService' />
     
    <bean id="myUserDetailsService" class="org.springframework.security.userdetails.jdbc.JdbcDaoImpl">
      <property name="dataSource" ref="dataSource"/>
      <property name="usersByUsernameQuery" value="SELECT usr_mail as username, usr_pw as password, enabled
                                                     FROM peg_users WHERE usr_mail = ? "/>
     <property name="authoritiesByUsernameQuery" value="SELECT usr_mail as username, usr_role as role
                                                           FROM roles WHERE usr_mail = ? "/>
    </bean>
    </beans>
    merci de votre aide

  2. #2
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 89
    Par défaut
    Bonjour,
    apparament ya personne qui a raconté ce proble. Aprés quelque recherche j'arrive à demarer mon aplication mais le proboleme maintenant c'est :
    j'arrive pas apparament à faire l'authentification dans la base.
    voici l'erreur que j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    INFO: 13:38:30,278  WARN LoggerListener:60 - Authentication event AuthenticationFailureBadCredentialsEvent: ; details: org.springframework.security.ui.WebAuthenticationDetails@1c07a: RemoteIpAddress: 127.0.0.1; SessionId: 8dd90c11971d270872bbc40017b2; exception: Bad credentials

Discussions similaires

  1. Empêcher l'accès à une page jsf avec spring security
    Par mounitahard dans le forum Spring
    Réponses: 1
    Dernier message: 02/06/2014, 11h43
  2. Intégration JSF facelet spring-security
    Par rc.dev2009 dans le forum JSF
    Réponses: 3
    Dernier message: 17/08/2011, 15h31
  3. Utilisation de Spring Security 3 avec JSF 2
    Par _sept_ dans le forum JSF
    Réponses: 2
    Dernier message: 10/08/2011, 12h51
  4. [Security] Hibernate + Spring security + JSF. Problème d'authentification
    Par haile dans le forum Spring
    Réponses: 5
    Dernier message: 23/06/2011, 15h35
  5. [Security] Spring Security et JSF: intercept-url
    Par Lourpiop dans le forum Spring
    Réponses: 3
    Dernier message: 06/05/2010, 20h51

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