Spring security Taglib
exception, security, spring, spring-security, taglib
Solution
You will need to include spring-faces in order to integrate spring security tags with faces. if you are using maven then would suggest to add dependency as this might will have jar dependency.
Problem
i want use spring security taglibs in my jsf project,so I've made the following changes to the project,but I get this Exception: Error occurred during deployment: Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.RuntimeException: com.sun.faces.config.ConfigurationException: java.lang.ClassNotFoundException: org.springframework.faces.security.FaceletsAuthorizeTagHandler. Please see server.log for more details. What am I doing wrong here? i use : netbeans 7.1.2 --spring mvc 3.0.6-- spring security 3.1.1--glassfish 3.1.2 and jsf 2.1 springsecurity.taglib.xml: ``` <!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> ``` web.xml: ``` <?xml version="1.0" encoding="UTF-8"?> <web-app 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"> <!-- /========================jsf config=============================/--> <context-param> <param-name>javax.faces.PROJECT_STAGE</param-name> <param-value>Development</param-value> </context-param> <context-param> <param-name>primefaces.THEME</param-name> <param-value>#{sessionManager.theme}</param-value> </context-param> <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> <session-config> <session-timeout> 30 </session-timeout> </session-config> <welcome-file-list> <welcome-file>/index.xhtml</welcome-file> </welcome-file-list> <!-- /========================spring config=============================/--> <context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/applicationContext.xml /WEB-INF/spring-security.xml </param-value> </context-param> <context-param> <param-name>javax.faces.FACELETS_LIBRARIES</param-name> <param-value>/WEB-INF/springsecurity.taglib.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <listener> <listener-class> org.springframework.security.web.session.HttpSessionEventPublisher </listener-class> </listener> <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> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> </filter-mapping> </web-app> ``` mypage.xhtml: ``` xmlns:sec="http://www.springframework.org/security/tags" . . . <sec:authorize access="ROLE_SUPERADMIN"> <h:outputText value="test" /> </sec:authorize> ``` mylib : ``` org.springframework.cglib-2.2 3.0.6.RELEASE org.springframework.aop 3.0.6.RELEASE org.springframework.asm 3.0.6.RELEASE org.springframework.aspects 3.0.6.RELEASE org.springframework.beans 3.0.6.RELEASE org.springframework.context 3.0.6.RELEASE org.springframework.context.support 3.0.6.RELEASE org.springframework.core 3.0.6.RELEASE org.springframework.expression 3.0.6.RELEASE org.springframework.instrument 3.0.6.RELEASE org.springframework.expression 3.0.6.RELEASE org.springframework.jdbc 3.0.6.RELEASE org.springframework.jms 3.0.6.RELEASE org.springframework.orm 3.0.6.RELEASE org.springframework.oxm 3.0.6.RELEASE org.springframework.test 3.0.6.RELEASE org.springframework.tx 3.0.6.RELEASE org.springframework.web 3.0.6.RELEASE org.springframework.webmvc-portlet 3.0.6.RELEASE org.springframework.webmvc 3.0.6.RELEASE org.springframework.struts 3.0.6.RELEASE commons-logging-1.1.1 jsf 2.1-jsf-api jsf 2.1 -jsf-impl jstl 1.1-standard jstl 1.1-jstl spring-security-ldap-3.1.1.RELEASE.jar spring-security-config-3.1.1.RELEASE.jar spring-security-core-3.1.1.RELEASE.jar spring-security-taglibs-3.1.1.RELEASE.jar spring-security-web-3.1.1.RELEASE.jar ```