我刚刚创建了一个新的grails-app,
一切都很好,直到我决定了
安装Spring Security Core。
安装Spring Security Core后
做s2-quickstart并击中
grails run-app,它产生了
以下错误:
URI
/test1/
Class
java.lang.IllegalStateException
Message
No thread-bound request found: Are you referring to request attributes outside of an actual web request, or processing a request outside of the originally receiving thread? If you are actually operating within a web request and still receive this message, your code is probably running outside of DispatcherServlet/DispatcherPortlet: In this case, use RequestContextListener or RequestContextFilter to expose the current request.
有人知道如何解决这个问题吗?
如果是,我真的很感激
你帮忙。我试过寻找
但是,其他网站的答案
我无法解决它。 :)
顺便说一下,我正在使用:
Spring Security Core 1.2.4
Grails 2.0.0.RC1
答案 0 :(得分:16)
如果你正在使用Maven,请确保你的pom.xml上有这个:
<dependency>
<groupId>org.grails.plugins</groupId>
<artifactId>webxml</artifactId>
<version>1.4.1</version>
<scope>runtime</scope>
<type>zip</type>
</dependency>
在BuildConfig中,groovy:
runtime ":webxml:1.4.1"
Grails 2.2.0为我解决了这个问题。
答案 1 :(得分:7)
如果您使用的是旧版Spring Security Core,则会发生这种情况。我从grails 1.3.7(和spring security 1.1.3)升级到grails 2.0.0时遇到了这个问题。修复程序是在application.properties中更改为spring-security-core 1.2:
plugins.spring-security-core=1.2
{현정建议的http://jira.grails.org/browse/GPSPRINGSECURITYCORE-98更多信息。
答案 2 :(得分:1)
尝试在web.xml文件中注册RequestContextListener侦听器。
文件:web.xml
<web-app>
...
<listener>
<listener-class>
org.springframework.web.context.request.RequestContextListener
</listener-class>
</listener>
</web-app>