2012-09-19 60 views
1

我想實現一個登錄系統,使用戶重定向回原始請求url。例如,如果用戶試圖訪問url'/ books/list'(需要登錄才能訪問),那麼用戶應該重定向到登錄頁面,登錄後用戶應該被重定向到'/ books/list',原始請求的網址。我該怎麼做呢 ? 我的登錄控制器看起來像:Grails和彈簧安全核心重定向

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] 
} 

回答

1

Spring Security Core插件在默認情況下執行此操作。

+0

對,這是Spring Security的核心功能。 –

0

登錄後重定向到請求的URL,您只需要在config.groovy文件中添加以下內容。

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