今天我在配置 Spring Security 的OAuth是遇到了一个错误:
java.lang.IllegalStateException: No WebApplicationContext found: no ContextLoaderListener registered?
需要注意一下几点:
1. 添加 spring-context 依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework.version}</version>
</dependency>
2. 注册 ContextLoaderListener
修改web.xml如下
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
注意,如果使用了Log4jConfigListener,需要把ContextLoaderListener放在后面。
3. 注意Spring Servlet 名称
参考OAuth 2 Developers Guide知道,我们需要在web.xml的securityFilterChain中添加如下配置:
<init-param>
<param-name>contextAttribute</param-name>
<param-value>org.springframework.web.servlet.FrameworkServlet.CONTEXT.spring</param-value>
</init-param>
特别需要注意的是:参数值最后的spring不是乱盖的,它要和SpringDispatchServlet的名称一致。
本文介绍了在配置Spring Security的OAuth过程中遇到的一个错误及其解决办法。主要包括添加spring-context依赖、注册ContextLoaderListener以及确保SpringServlet名称正确。
1144

被折叠的 条评论
为什么被折叠?



