3

私は自分の jsf プロジェクトで spring security taglibs を使用したいので、プロジェクトに次の変更を加えましたが、次の例外が発生します。

展開中にエラーが発生しました: アプリの読み込み中に例外が発生しました: 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. 詳細については、server.log を参照してください。

ここで何が間違っていますか?私が使う :

netbeans 7.1.2 --spring mvc 3.0.6-- spring security 3.1.1--glassfish 3.1.2 および 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
4

1 に答える 1

8

スプリング セキュリティ タグをフェースに統合するには、スプリング フェースを含める必要があります。Maven を使用している場合は、jar 依存関係がある可能性があるため、依存関係を追加することをお勧めします。

于 2012-12-04T14:44:12.867 に答える