2016-08-03 5 views
0

私のプロジェクトでは、Spring SecurityとJettyを使用します。 今、私はJetty 7を使用しています。私はJetty 9に移行したいと思います。エラーが発生しました(springSecurityFilterChainが2回表示されます)Springセキュリティ移行Jetty 7〜9

突堤7では、私のプロジェクトは完全に実行するが、私は9に移行した場合、それが起動するとき、私はエラーメッセージが表示されます。java.lang.IllegalStateException:

によって引き起こされる「springSecurityFilterChain」のフィルタの登録を複製します。フィルターが一度だけ構成されていることを確認してください。

のMaven:

/config/JpaConfiguration.java 
/config/LoggingConfiguration.java 
/config/MessageSecurityWebApplicationInitializer.java 
/config/SecurityAuthenticationFailureHandler.java 
/config/SecurityAuthenticationSuccessHandler.java 
/config/SecurityConfig.java 
/config/SecurityWebApplicationInitializer.java 
/config/WebConfiguration.java 

とweb.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
     http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
     version="3.1"> 

    <display-name>Archetype Created Web Application</display-name> 

    <context-param> 
     <param-name>contextClass</param-name> 
     <param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value> 
    </context-param> 
    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value> 
      com.jle.athleges.config.LoggingConfiguration 
      com.jle.athleges.config.JpaConfiguration 
      com.jle.athleges.config.WebConfiguration 
      com.jle.athleges.config.SecurityConfig 
     </param-value> 
    </context-param> 

    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 

    <servlet> 
     <servlet-name>spring</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param> 
      <param-name>contextClass</param-name> 
      <param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>spring</servlet-name> 
     <url-pattern>/</url-pattern> 
     <url-pattern>*.html</url-pattern> 
    </servlet-mapping> 

    <!-- START: 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> 

    <listener> 
     <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> 
    </listener> 
    <context-param> 
     <param-name>log4jConfigLocation</param-name> 
     <param-value>classpath:log4j.xml</param-value> 
    </context-param> 

    <session-config> 
     <session-timeout>30</session-timeout> 
    </session-config> 

    <welcome-file-list> 
     <welcome-file>index.html</welcome-file> 
    </welcome-file-list> 

</web-app> 

<properties> 
    <!-- NOT LATEST VERSION --> 
    <spring-data-jpa.version>1.9.4.RELEASE</spring-data-jpa.version> 
    <hibernate.version>5.1.0.Final</hibernate.version> 

    <!-- LATEST VERSION --> 
    <springframework.version>4.3.2.RELEASE</springframework.version> 
    <spring-security.version>4.1.1.RELEASE</spring-security.version> 
    <aspectj.version>1.8.9</aspectj.version> 
    <hibernate-validator.version>5.2.4.Final</hibernate-validator.version> 
    <cglib.version>3.2.4</cglib.version> 

    <!-- No compatibility needed --> 
    <mysql.version>6.0.3</mysql.version> 
    <log4j.version>1.2.17</log4j.version> 
    <slf4j.version>1.7.21</slf4j.version> 
    <junit.version>4.12</junit.version> 
    <h2.version>1.4.192</h2.version> 
    <log4j.version>1.2.17</log4j.version> 
    <javax-servlet.version>3.1.0</javax-servlet.version> 
    <jsp-api.version>2.3.1</jsp-api.version> 
    <jstl.version>1.2</jstl.version> 
    <taglibs.version>1.1.2</taglibs.version> 
</properties> 

私はこのクラスを持って、私はアノテーションを使用し、これが設定され

アイデアはありますか?

+0

ありがとうございました。それは働いている。私はAbstractAnnotationConfigDispatcherServletInitializerに移動し、メソッドを実装し、web.xmlで設定を削除しました。 素晴らしい! –

答えて

0

あなたは豆springSecurityFilterChainの二つの定義があります:SecurityWebApplicationInitializer.java

  1. (3.0+サーブレット以降):

    web.xmlSpring Security Reference

  2. を参照してください:

    <filter> 
        <filter-name>springSecurityFilterChain</filter-name> 
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
    </filter> 
    

2つの定義のいずれかを削除します。

関連する問題