关于Spring Security最最基础的问题。

qicaihuochai 2009-08-07 11:25:58
将Spring Security的包全部导入以后,启动工程,却报以下错误:

严重: Exception starting filter springSecurityFilterChain
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'springSecurityFilterChain' is defined
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:360)
at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedBeanDefinition(AbstractBeanFactory.java:914)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:241)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:761)
at org.springframework.web.filter.DelegatingFilterProxy.initDelegate(DelegatingFilterProxy.java:163)
at org.springframework.web.filter.DelegatingFilterProxy.initFilterBean(DelegatingFilterProxy.java:123)
at org.springframework.web.filter.GenericFilterBean.init(GenericFilterBean.java:180)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3696)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4343)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
2009-8-7 11:21:15 org.apache.catalina.core.StandardContext start


我到包里面去查找org.springframework.web.filter.DelegatingFilterProxy,发现这个也存在,但就不知道为啥?

也不知道该怎么修改。

请多多指教。以下是我的web.xml中的代码:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 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_2_5.xsd">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext*.xml</param-value>
</context-param>
<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.context.ContextLoaderListener</listener-class>
</listener>

<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
...全文
2054 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiang_xiaohan 2012-09-11
  • 打赏
  • 举报
回复
我也卡在这里问题上了,怎么解决
airballbibi 2011-07-21
  • 打赏
  • 举报
回复
我也遇到过。
最后发现在applicationContext-security.xml文件里,少写两个配置项,如下:
<http auto-config="true">
<intercept-url pattern="/**" access="ROLE_USER"/>
</http>

<authentication-manager>
<authentication-provider>
<user-service>
<user name="ariball" password="123" authorities="ROLE_USER" />
</user-service>
</authentication-provider>
</authentication-manager>

还有一个要注意的是,spring-security和spring的版本。这个可以具体去官方去查。
还有其他原因可能引起,需要一个一个排除。
这是一个spring security中文文档地址,里面也有可用的帮助信息。
http://www.fengfly.com/document/springsecurity3/preface.html

[Quote=引用 8 楼 yanzhiyong999 的回复:]

这个问题我遇到过已经解决了
原因如下:
web.xml中的写法不正确
<param-value>classpath:applicationContext*.xml</param-value>
改成
<param-value>
/WEB-INF/applicationContext-service.xml
/WEB-INF/appl……
[/Quote]
冷面 2011-05-26
  • 打赏
  • 举报
回复
这个问题我遇到过已经解决了
原因如下:
web.xml中的写法不正确
<param-value>classpath:applicationContext*.xml</param-value>
改成
<param-value>
/WEB-INF/applicationContext-service.xml
/WEB-INF/applicationContext-security.xml
</param-value>
有几个列几个不要用*号匹配
fzufish 2011-04-13
  • 打赏
  • 举报
回复

spring 配置文件增加一个空的
<http auto-config='true'/>
Magiccrystal 2010-05-10
  • 打赏
  • 举报
回复
楼主解决这个问题??我遇到了:
在web.xml中:<!-- SpringSecurity filter-->
<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>

在applicationContext-security.xml中:
<!-- 重新定义的FilterSecurityInterceptor,使用databaseDefinitionSource提供的url-授权关系定义 -->
<bean id="filterSecurityInterceptor" class="org.springframework.security.intercept.web.FilterSecurityInterceptor">
<s:custom-filter before="FILTER_SECURITY_INTERCEPTOR" />
<property name="accessDecisionManager" ref="accessDecisionManager" />
<property name="objectDefinitionSource" ref="databaseDefinitionSource" />
</bean>
是这里有问题??,帮忙解答,谢了
txwh_2169 2009-10-10
  • 打赏
  • 举报
回复
楼主解决这个问题了没?我也遇到这个问题,但是没有找到解决方法
若愚哥 2009-09-23
  • 打赏
  • 举报
回复
顶一下,遇到了同样的问题!
紫炎圣骑 2009-08-07
  • 打赏
  • 举报
回复
springSecurityFilterChain 这个存在么?
ghost1000 2009-08-07
  • 打赏
  • 举报
回复
这个Filter会拦截所有的URL请求,并且对这些URL请求进行Spring Security的验证。

注意,springSecurityFilterChain这个名称是由命名空间默认创建的用于处理web安全的一个内部的bean的id。所以你在你的Spring配置文件中,不应该再使用这个id作为你的bean。
ghost1000 2009-08-07
  • 打赏
  • 举报
回复
No bean named 'springSecurityFilterChain' is defined
没有找到 你的过滤器链,web.xml看起来没有错,估计应该是你security配置文件的问题。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧