【发布时间】:2014-05-28 16:48:54
【问题描述】:
我们使用 Spring Security 插件版本 1.2.7.3 和 Grails 2.2.1。
在我的Config.groovy 中,我这样做了:
grails.plugins.springsecurity.auth.ajaxLoginFormUrl = "/mylogin/authAjax"
认为,当有 Ajax 请求时,如果用户的 HttpSession 超时,Spring Security 将在 MyloginController 中调用 authAjax()。
根据文档,我确保标头 X-Requested-With 的值为 XMLHttpRequest 在 Ajax 请求中,因此插件知道它是 Ajax 请求。
我的期望是 authAjax() 将被调用,我可以让它返回 401,所以 UI 知道它需要弹出另一个登录屏幕。
但是,不是调用 authAjax(),而是将 302 返回到 UI,并将位置字段设置为 http://localhost:8080/MyApplication/mycontroller/authAjax
这意味着我必须在我的 UI 上添加一些非常老套的东西,检查 302 并检查位置字段,然后让用户重新登录。我更希望返回 401。
任何想法我做错了什么?
谢谢一百万。
【问题讨论】:
-
可能是您的 authAjax 网址不允许所有人使用。
-
你解决了这个问题吗?
标签: grails spring-security grails-plugin