【问题标题】:Go back to the requested URL in Spring security在 Spring security 中返回请求的 URL
【发布时间】:2017-02-01 20:22:00
【问题描述】:

Grails 2.5.1 应用程序中,我正在使用 Spring security core plugin 2.0-RC5 ,我想返回到请求的 URL,例如访问页面 payOnline 您需要先登录,所以我在之后重定向到登录页面登录成功我想去payOnline

如何做到这一点?

【问题讨论】:

  • 您使用的是什么版本的 Grails?你用的是什么版本的插件?原始请求是 GET 还是 POST?
  • 请添加更多解释。
  • @JoshuaMoore 编辑了原始问题
  • @Sherif 你搞定了吗?

标签: grails spring-security


【解决方案1】:

要访问payOnline页面,你需要先登录,所以我在成功登录后重定向到登录页面我想去payOnline。

1.转到请求页面:

默认情况下,spring security 会在重定向到登录页面之前存储您要访问的请求 url。成功登录后,您将被重定向到您想要的页面。

例如

User trying to access `/payOnline`
If user is not logged in redirect user to `login` page
user successfully logged in redirect to `/payOnline`

您要问的是spring security core plugin 的默认行为。

如果它没有按预期工作,请检查您的config.groovy 中是否存在successHandler.alwaysUseDefault 配置属性。如果是,则将其删除。

2 。总是转到特定页面:

如果您想在登录后始终转到特定页面,那么您可以很容易地在 UrlMappings.groovy 中指定要进入的控制器操作。

只需指定您在登录后想要获取的控制器和操作,如下所示

让我们假设Provision 控制器和payOnline 操作。

"/"(controller: "provision", action: "payOnline")

这会将所有成功登录的用户重定向到payOnline 页面。

参考: http://docs.grails.org/2.5.1/guide/theWebLayer.html#urlmappings

【讨论】:

  • 我认为您提到的内容会在登录后始终到达payOnline,但我不知道那是什么。我需要的是,如果任何定义该用户必须首先登录的页面会将用户重定向到登录页面,然后让他回到他之前尝试访问的页面
  • 更新了我的答案。请看一看。
  • 我检查了config,发现它falsegrails.plugin.springsecurity.successHandler.alwaysUseDefault = false,还有什么我需要检查的吗?
  • 我暂时没有想到任何其他参数,请删除它重试。如果可行,那就很好,否则希望有人提供另一种解决方案。
  • 我从config 中完全删除了它,但结果还是一样!!
猜你喜欢
  • 1970-01-01
  • 2019-11-13
  • 2013-05-07
  • 1970-01-01
  • 2015-05-13
  • 2020-05-23
  • 2015-10-04
  • 1970-01-01
  • 2012-02-13
相关资源
最近更新 更多