【问题标题】:Grails and redirect with spring security coreGrails 和使用 spring 安全核心重定向
【发布时间】:2013-04-19 16:18:19
【问题描述】:

我正在尝试实现一个登录系统,以便将用户重定向回原始请求 url。例如,如果用户尝试访问 url '/books/list'(需要登录才能访问),那么用户应该被重定向到登录页面,登录后,用户应该被重定向到 '/books/list',原始请求的网址。我该怎么做呢 ? 我的登录控制器看起来像:

def index = {
if (springSecurityService.isLoggedIn()) {
    redirect action: 'dashboard'
    //redirect uri: SpringSecurityUtils.securityConfig.login.filterProcessesUrl
}
else {

  redirect action: auth, params: params
}
}


def auth = {


def config = SpringSecurityUtils.securityConfig

if (springSecurityService.isLoggedIn()) {
  redirect uri: config.successHandler.defaultTargetUrl
  return
}

String view = 'auth'
String postUrl = "${request.contextPath}${config.apf.filterProcessesUrl}"
render view: view, model: [postUrl: postUrl,
        rememberMeParameter: config.rememberMe.parameter]
}

【问题讨论】:

    标签: grails redirect spring-security


    【解决方案1】:

    Spring Security Core 插件默认执行此操作。

    【讨论】:

    • 对,这是 Spring Security 的核心功能。
    【解决方案2】:

    登录后重定向到请求的url,您只需在config.groovy文件中添加以下内容。

    grails.plugins.springsecurity.successHandler.alwaysUseDefaultTargetUrl = false
    grails.plugins.springsecurity.securityConfigType = "InterceptUrlMap"
    grails.plugins.springsecurity.interceptUrlMap = [   
    '/**': ["IS_AUTHENTICATED_FULLY"]
    ]
    

    【讨论】:

    • 我认为我们需要在grails.plugins.springsecurity.successHandler.alwaysUseDefaultTargetUrl = false 中添加一行Config.groovy
    猜你喜欢
    • 2012-06-01
    • 1970-01-01
    • 2011-10-19
    • 2016-04-16
    • 2014-09-17
    • 2016-11-18
    • 2012-08-17
    • 2016-06-12
    • 2018-11-02
    相关资源
    最近更新 更多