Spring安全Taglib
作者:互联网
我想在我的jsf项目中使用spring security taglibs,所以我对项目进行了以下更改,但是我得到了这个异常:
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.
我在这做错了什么?
我用 :
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
解决方法:
您需要包含spring-faces才能将弹簧安全标签与面部集成.如果您正在使用maven,那么建议添加dependency,因为这可能会有jar依赖.
标签:taglib,spring,spring-security,security,exception 来源: https://codeday.me/bug/20190725/1536486.html