Grails Spring Security插件:为超时会话的Ajax请求获取302

问题描述 投票:8回答:1

我们正在使用带有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”认为,当出现...

grails spring-security grails-plugin
1个回答
0
投票

[如果其他人遇到此问题,我发现这完全取决于chainMap规则。我的REST api位于“ / api /” URL下,因此我的chainMap看起来像这样:

© www.soinside.com 2019 - 2024. All rights reserved.