我在grails 2.3.11中有一个带有zk-grails插件的应用程序。当我执行Spring Security Core集成进行身份验证时,zul页面会停止响应,并出现以下错误:“服务器暂时无法使用 您想重试吗? (意外令牌<(SyntaxError))“
答案 0 :(得分:1)
这听起来像您的安全配置截获了映射到/ zkau(独立于grails)的Ajax servlet。
ZK的客户端引擎期望ajax请求以类似JSON的格式响应,而不是重定向到登录页面(通常是html)。因此,意外令牌'<'-html页面通常以'<'开头,由于格式错误,响应解析只会失败。
您的下一个问题可能是... ZK的客户端引擎为什么不检测对Ajax响应的重定向? ->只是因为不能。已经讨论过多次(例如here或there)
已经发布了支持现代浏览器API的功能请求,以用于将来的版本-> ZK-4175,并改善错误消息ZK-4199。
因此,到目前为止,您有多种选择:
您可以返回ZK客户端引擎可以理解的JSON响应,而不是401 例如。: {“ rs”:[[“” redirect“,[” https://yourssoserver.com/login.jsp“,”“]]],” rid“:1}
如zk forums中所述自定义ZK的客户端解析器错误处理。并实施自己的逻辑来处理某些非JSON响应。
更新:ZK-4199已实现,并将包含在ZK版本8.6.2中(显示更有意义的错误消息)