在修复了 CRLF 注销漏洞 ( https://jira.springsource.org/browse/SEC-1790 )的 spring security 版本 3.0.6 中,他们禁用了“spring-security-redirect”参数的使用。
3.0.6 中也删除了对注销 URL 中重定向参数的默认支持。在 3.1 中,它已经需要显式启用。
有没有办法重新打开重定向参数,以便我可以在我的 Grails Spring Security Logout Controller 中动态重定向?
注销控制器.groovy
def user = springSecurityService.currentUser
if (params.redirect) {
// this needs to log the user out and then redirect, so don't redirect until we log the user out here
log.info "Redirecting " + springSecurityService.currentUser.username + " to " + params.redirect
// the successHandler.targetUrlParameter is spring-security-redirect, which should redirect after successfully logging the user out
redirect uri: SpringSecurityUtils.securityConfig.logout.filterProcessesUrl + "?spring-security-redirect="+params.redirect
return;
}
redirect uri: SpringSecurityUtils.securityConfig.logout.filterProcessesUrl // '/j_spring_security_logout'
以下不再适用于 spring security 3.0.6+ 的版本