CRLFログアウトエクスプロイト( https://jira.springsource.org/browse/SEC-1790 )を修正したSpring Securityバージョン3.0.6では、「spring-security-redirect」パラメーターの使用が無効になりました。
ログアウトURLのリダイレクトパラメータのデフォルトサポートも3.0.6で削除されました。3.1では、すでに明示的に有効にする必要があります。
Grails Spring Security Logout Controllerで動的にリダイレクトできるように、リダイレクトパラメーターをオンに戻す方法はありますか?
LogoutContoller.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'
以下は、SpringSecurity3.0.6以降のバージョンでは機能しなくなりました