【问题标题】:Grails 2 with spring security: defaultFailureUrl not working具有弹簧安全性的 Grails 2:defaultFailureUrl 不起作用
【发布时间】:2014-02-09 00:58:32
【问题描述】:

除了 spring-security-plugin 之外,我还在使用 grails 2 框架。

我构建了一个自定义登录表单,它应该始终在主页上可见。

因此,应始终将用户重定向到主页。无论是否发生错误。

在成功登录的情况下,一切正常,但在发生错误的情况下,flash 范围在重定向期间丢失。所以我无法显示身份验证失败的原因。

根据文档,应该只调整参数“defaultFailureUrl”。 但这并没有按预期工作。

是否有任何其他必要的参数来实现此功能?

我的 Config.groovy

// Added by the Spring Security Core plugin:
grails.plugin.springsecurity.successHandler.defaultTargetUrl="/"
grails.plugin.springsecurity.successHandler.alwaysUseDefault=true
grails.plugin.springsecurity.failureHandler.defaultFailureUrl = '/'
grails.plugin.springsecurity.auth.loginFormUrl = '/'
grails.plugin.springsecurity.logout.postOnly = false // Logout through direct link
grails.plugin.springsecurity.userLookup.userDomainClassName = 'de.msg.login.User'
grails.plugin.springsecurity.userLookup.authorityJoinClassName = 'de.msg.login.UserRole'
grails.plugin.springsecurity.authority.className = 'de.msg.login.Role'

希望有人能找到解决办法;)

【问题讨论】:

  • 我自己找到了解决方案。 flash.messages 总是丢失,所以我不得不重写 LoginController 的 authFail() 方法。我现在使用转发到我的控制器,而不是重定向。在我的控制器中,我重定向到我的应用程序的主页。

标签: grails login spring-security


【解决方案1】:

据我了解,您希望在提交登录页面后在同一登录页面上显示消息。

使用此属性可能会起作用: 在 config.groovy 中设置它

failureHandler.useForward=false

See this link

【讨论】:

  • 感谢您的回答,但我认为上面提到的属性默认为'false'。
猜你喜欢
  • 2013-04-12
  • 2012-01-07
  • 2011-06-22
  • 2012-08-21
  • 2017-01-01
  • 2012-08-04
  • 2019-04-27
相关资源
最近更新 更多