xml 未定义名为“springSecurityFilterChain”的 bean
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/5026460/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
No bean named 'springSecurityFilterChain' is defined
提问by michaelHymanson4ever
When configs are loaded, I get the error
加载配置时,我收到错误
SEVERE: Exception starting filter springSecurityFilterChain org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'springSecurityFilterChain' is defined
严重:异常启动过滤器 springSecurityFilterChain org.springframework.beans.factory.NoSuchBeanDefinitionException:没有定义名为“springSecurityFilterChain”的 bean
My sec-config:
我的秒配置:
<http use-expressions="true" access-denied-page="/error/casfailed.html" entry-point-ref="headerAuthenticationEntryPoint">
<intercept-url pattern="/" access="permitAll"/>
<!-- <intercept-url pattern="/index.html" access="permitAll"/> -->
<intercept-url pattern="/index.html" access="hasAnyRole('ROLE_USER')"/>
<intercept-url pattern="/history.html" access="hasAnyRole('ROLE_USER')"/>
<intercept-url pattern="/absence.html" access="hasAnyRole('ROLE_USER')"/>
<intercept-url pattern="/search.html" access="hasAnyRole('ROLE_USER')"/>
<intercept-url pattern="/employees.html" access="hasAnyRole('ROLE_USER')"/>
<intercept-url pattern="/employee.html" access="hasAnyRole('ROLE_USER')"/>
<intercept-url pattern="/contract.html" access="hasAnyRole('ROLE_USER')"/>
<intercept-url pattern="/myforms.html" access="hasAnyRole('HLO','OPISK')"/>
<intercept-url pattern="/vacationmsg.html" access="hasAnyRole('ROLE_USER')"/>
<intercept-url pattern="/redirect.jsp" filters="none" />
<intercept-url pattern="/error/**" filters="none" />
<intercept-url pattern="/layout/**" filters="none" />
<intercept-url pattern="/js/**" filters="none" />
<intercept-url pattern="/**" access="isAuthenticated()" />
<!-- session-management invalid-session-url="/absence.html"/ -->
<!-- logout logout-success-url="/logout.html"/ -->
<custom-filter ref="ssoHeaderAuthenticationFilter" before="CAS_FILTER"/> <!-- CAS_FILTER ??? -->
</http>
<authentication-manager alias="authenticationManager">
<authentication-provider ref="doNothingAuthenticationProvider"/>
</authentication-manager>
<beans:bean id="doNothingAuthenticationProvider" class="com.nixu.security.sso.web.DoNothingAuthenticationProvider"/>
<beans:bean id="ssoHeaderAuthenticationFilter" class="com.nixu.security.sso.web.HeaderAuthenticationFilter">
<beans:property name="groups">
<beans:map>
<beans:entry key="cn=lake,ou=confluence,dc=utu,dc=fi" value="ROLE_ADMIN"/>
</beans:map>
</beans:property>
</beans:bean>
<beans:bean id="headerAuthenticationEntryPoint"
class="com.nixu.security.sso.web.HeaderAuthenticationEntryPoint"/>
And web.xml
和 web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/applicationContext.xml
/WEB-INF/sec-config.xml
/WEB-INF/idm-config.xml
/WEB-INF/ldap-config.xml
</param-value>
</context-param>
<display-name>KeyCard</display-name>
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>KeyCardAppRoot</param-value>
</context-param>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
<!-- Reads request input using UTF-8 encoding -->
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<listener> <!-- this is for session scoped objects -->
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
</listener>
<!-- Handles all requests into the application -->
<servlet>
<servlet-name>KeyCard</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>tiles</servlet-name>
<servlet-class>org.apache.tiles.web.startup.TilesServlet</servlet-class>
<init-param>
<param-name>
org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG
</param-name>
<param-value>
/WEB-INF/tilesViewContext.xml
</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>KeyCard</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
120
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/WEB-INF/error/error.jsp</location>
</error-page -->
</web-app>
What's wrong?
怎么了?
回答by ryan
maybe, you're missing bean loader.
也许,您缺少 bean 加载程序。
application-context.xml
应用程序上下文.xml
<beans:import resource="webmvc-context.xml"/>
<beans:import resource="webflow-context.xml"/>
<beans:import resource="security-context.xml"/>
web.xml
网页.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/appServlet/application-context.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
回答by borjab
Just for future users. It seems that the name of the filter is case sensitive and can not be changed.
只为未来的用户。似乎过滤器的名称区分大小写,无法更改。
See this threadin spring forum. I still have problems but at least I know that the name of the filter is more than just a reference between the filter and the filter-mapping.
在 spring 论坛中看到这个线程。我仍然有问题,但至少我知道过滤器的名称不仅仅是过滤器和过滤器映射之间的参考。
回答by Sagar
are following configurations present in your web.xml?
您的 web.xml 中是否存在以下配置?
<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>

