spring - zk-grails与Spring安全性集成

标签 spring grails zk

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

最佳答案

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

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

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

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

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

  • 针对/ zkau的未经授权的AJAX请求以401(未经授权)代替
    302重定向并配置客户端error-code + reload-uri
  • 而不是401,您可以返回ZK客户端引擎可以理解的JSON响应
    例如。:
    {“rs”:[[“” redirect“,[” https://yourssoserver.com/login.jsp“,”“]]]],” rid“:1}
  • 作为最后的手段,自定义ZK的客户端解析器错误处理,如zk forums中所述。并实现自己的逻辑来处理某些非JSON响应。

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

    关于spring - zk-grails与Spring安全性集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54159918/

    相关文章:

    java - 如何使用新模型/ child 更新/放置对象属性 Webflux Spring Reactive

    java - 在 tomcat v 8.5 上部署 spring boot 应用程序失败

    grails - IntelliJ IDEA 9.0 - 无法为 Grails 应用程序选择项目 SDK

    java - 将 ZK 与 EMF 绑定(bind)(java)

    java - 更改 ZK 中列的顺序

    java - 如何隐藏 zkoss URL 中显示的 zul 扩展名?

    java - 属性<beans :property name ="maximumSessions" value ="1"/> doesn't work

    java - 从 java.sql.Connection 实例化 JdbcTemplate

    grails - Grails域的常见beforeUpdate方法

    date - Grails "Unparseable Date"错误