我们正在使用带有Grails 2.2.1的Spring Security插件版本1.2.7.3。在我的Config.groovy
中,我这样做:
grails.plugins.springsecurity.auth.ajaxLoginFormUrl = "/mylogin/authAjax"
认为,当有一个Ajax请求时,如果用户的HttpSession超时,Spring Security将在authAjax()
中调用MyloginController
。
根据文档,我确保Ajax请求中包含值为X-Requested-With
的标头XMLHttpRequest
,以便插件知道它是Ajax请求。
我的期望是将调用authAjax()
,并且我可以使它返回401,因此UI知道它需要弹出另一个登录屏幕。
但是,不是调用authAjax()
,而是将位置字段设置为http://localhost:8080/MyApplication/mycontroller/authAjax
的302返回到UI。>
这意味着我必须在UI上放一些很乱的东西,检查302,然后检查位置字段,然后让用户重新登录。我更希望返回401。
任何想法我做错了什么?
感谢一百万。
我们正在使用带有Grails 2.2.1的Spring Security插件版本1.2.7.3。在我的Config.groovy中,我这样做:grails.plugins.springsecurity.auth.ajaxLoginFormUrl =“ / mylogin / authAjax”认为,当出现...
[如果其他人遇到此问题,我发现这完全取决于chainMap规则。我的REST api位于“ / api /” URL下,因此我的chainMap看起来像这样: