Bonjour, dès que j'ajoute Spring Sécurité à mon projet: j'ai une erreur.
mon web.xml:
Le fichier de configuration pour la 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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72 <?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="3.0" 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_3_0.xsd"> <!-- Application --> <display-name>Test</display-name> <welcome-file-list> <welcome-file>lanceur.jsp</welcome-file> </welcome-file-list> <!-- Spring --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <listener> <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <!-- Chargement de tout fichier xml commençant par applicationContext --> <param-value>/WEB-INF/applicationContext*.xml</param-value> </context-param> <!-- spring Security --> <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> <context-param> <param-name>javax.faces.FACELETS_LIBRARIES</param-name> <param-value>/WEB-INF/jsf-tag/springsecurity.taglib.xml</param-value> </context-param> <!-- Spring log --> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener> <!-- Session configuration --> <session-config> <session-timeout>60</session-timeout> </session-config> <!-- JSF --> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.xhtml</url-pattern> </servlet-mapping> <!-- reload , ne pas commiter--> <context-param> <param-name>javax.faces.FACELETS_REFRESH_PERIOD</param-name> <param-value>10</param-value> </context-param> <context-param> <param-name>facelets.DEVELOPMENT</param-name> <param-value>true</param-value> </context-param> </web-app>
Le fichier de tag JSF (pour Spring 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 <?xml version="1.0" encoding="UTF-8"?> <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.1.xsd"> <http auto-config="true"> <intercept-url pattern="/**" access="ROLE_USER"/> <intercept-url pattern="/**" access="ROLE_ADMIN"/> </http> <authentication-manager alias="authenticationManager"> <authentication-provider> <user-service> <user name="admin" password="admin" authorities="ROLE_ADMIN"/> <user name="user" password="user" authorities="ROLE_USER"/> </user-service> </authentication-provider> </authentication-manager> </beans:beans>
Et la page XHTML à afficher:
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 <?xml version="1.0"?> <!DOCTYPE facelet-taglib PUBLIC "-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN" "http://java.sun.com/dtd/facelet-taglib_1_0.dtd"> <facelet-taglib> <namespace>http://www.springframework.org/security/tags</namespace> <tag> <tag-name>authorize</tag-name> <handler-class>org.springframework.faces.security.FaceletsAuthorizeTagHandler</handler-class> </tag> <function> <function-name>areAllGranted</function-name> <function-class>org.springframework.faces.security.FaceletsAuthorizeTagUtils</function-class> <function-signature>boolean areAllGranted(java.lang.String)</function-signature> </function> <function> <function-name>areAnyGranted</function-name> <function-class>org.springframework.faces.security.FaceletsAuthorizeTagUtils</function-class> <function-signature>boolean areAnyGranted(java.lang.String)</function-signature> </function> <function> <function-name>areNotGranted</function-name> <function-class>org.springframework.faces.security.FaceletsAuthorizeTagUtils</function-class> <function-signature>boolean areNotGranted(java.lang.String)</function-signature> </function> <function> <function-name>isAllowed</function-name> <function-class>org.springframework.faces.security.FaceletsAuthorizeTagUtils</function-class> <function-signature>boolean isAllowed(java.lang.String, java.lang.String)</function-signature> </function> </facelet-taglib>
La ligne qui pose problème, car quand elle est là, plus rien ne marche:
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 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:p="http://primefaces.org/ui" xmlns:security="http://www.springframework.org/security/tags"> <f:view locale="#{homeSession.locale}"> <f:loadBundle var="resHome" basename="#{homeSession.resource}"/> <h:head> </h:head> <h:body> <!-- Menu --> <p:outputPanel id="form_panel"> <ui:insert> <security:authorize ifAnyGranted="ROLE_ADMIN,ROLE_USER"> <ui:include src="/html/include/menu.xhtml"/> </security:authorize> </ui:insert> </p:outputPanel> <!-- Formulaire --> <p:outputPanel id="body_panel"> <!-- Gestion du calendrier --> <p:outputPanel id="gestion_du_calendrier_panel" rendered="#{homeSession.isGestionDuCalendrier}"> <h:outputText value="Gestion du calendrier" /> </p:outputPanel> <!-- Gestion des remises --> <p:outputPanel id="gestion_des_remise_panel" rendered="#{homeSession.isGestionDesRemises }"> <h:outputText value="Gestion des remises" /> </p:outputPanel> <!-- Gestion des devises --> <p:outputPanel id="gestion_des_devises_panel" rendered="#{homeSession.isGestionDesDevises}"> <h:outputText value="Gestion des devises" /> </p:outputPanel> <!-- Gestion de la main d'oeuvre --> <p:outputPanel id="gestion_de_la_main_oeuvre_panel" rendered="#{homeSession.isGestionDeLaMainOeuvre}"> <h:outputText value="Gestion de la main d'oeuvre" /> </p:outputPanel> </p:outputPanel> </h:body> </f:view> </html>
l'erreur dans Eclipse quand on lance JBoss 7:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2<ui:include src="/html/include/menu.xhtml"/>
Et en analysant en debbugger le code, on a:
Code : Sélectionner tout - Visualiser dans une fenêtre à part "Servlet.service()"
requestcontext est null.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 requestContext.getViewScope().put(SERIALIZED_VIEW_STATE, view);
Il est donné par:
si quelqu'un a une idée, merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 RequestContext requestContext = RequestContextHolder.getRequestContext();








Répondre avec citation
Partager