In meinem Projekt verwende ich Spring Security und Jetty. Jetzt benutze ich Jetty 7 und ich möchte zu Jetty 9 migrieren (nur um auf dem neuesten Stand zu sein).Ich erhalte einen Fehler (springSecurityFilterChain erscheint zweimal) Spring Security migration Jetty 7 zu 9
Mit Jetty 7, mein Projekt perfekt laufen, aber wenn ich bis 9 migrieren Ich erhalte eine Fehlermeldung, wenn es beginnt:
Verursacht durch: java.lang.IllegalStateException: Filter Registrierung für ‚springSecurityFilterChain‘ Duplizieren. Stellen Sie sicher, dass der Filter nur einmal konfiguriert ist.
Ich benutze Annotation und dies ist die Konfiguration:
Maven:
<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>
Ich habe diese Klassen:
/config/JpaConfiguration.java
/config/LoggingConfiguration.java
/config/MessageSecurityWebApplicationInitializer.java
/config/SecurityAuthenticationFailureHandler.java
/config/SecurityAuthenticationSuccessHandler.java
/config/SecurityConfig.java
/config/SecurityWebApplicationInitializer.java
/config/WebConfiguration.java
Und die 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>
Haben Sie eine Idee?
Vielen Dank. Es funktioniert. Ich wechselte zu AbstractAnnotationConfigDispatcherServletInitializer und implementiert Methoden und entfernte die Konfiguration in web.xml. Großartig! –