zk-grails与Spring安全性集成

时间:2019-01-12 13:12:24

标签: spring grails zk

我在grails 2.3.11中有一个带有zk-grails插件的应用程序。当我执行Spring Security Core集成进行身份验证时,zul页面会停止响应,并出现以下错误:“服务器暂时无法使用 您想重试吗? (意外令牌<(SyntaxError))“

1 个答案:

答案 0 :(得分:1)

这听起来像您的安全配置截获了映射到/ zkau(独立于grails)的Ajax servlet。

ZK的客户端引擎期望ajax请求以类似JSON的格式响应,而不是重定向到登录页面(通常是html)。因此,意外令牌'<'-html页面通常以'<'开头,由于格式错误,响应解析只会失败。

您的下一个问题可能是... ZK的客户端引擎为什么不检测对Ajax响应的重定向? ->只是因为不能。已经讨论过多次(例如herethere

已经发布了支持现代浏览器API的功能请求,以用于将来的版本-> ZK-4175,并改善错误消息ZK-4199

因此,到目前为止,您有多种选择:

  1. 对于对/ zkau的未经授权的AJAX请求,应返回401(未经授权) 302重定向并配置客户端error-code + reload-uri
  2. 您可以返回ZK客户端引擎可以理解的JSON响应,而不是401 例如。: {“ rs”:[[“” redirect“,[” https://yourssoserver.com/login.jsp“,”“]]],” rid“:1}

  3. 作为最后的手段,
  4. zk forums中所述自定义ZK的客户端解析器错误处理。并实施自己的逻辑来处理某些非JSON响应。

更新ZK-4199已实现,并将包含在ZK版本8.6.2中(显示更有意义的错误消息)