Grails Redirect Post-Logout Using spring-security-core-3.0.6 +

В версии Spring Security 3.0.6, в которой исправлен эксплойт выхода из системы CRLF ( https://jira.springsource.org/browse/SEC-1790 ), они отключили использование Параметр spring-security-redirect.

Поддержка по умолчанию параметра перенаправления в URL-адресах выхода также была удалена в 3.0.6. В версии 3.1 это уже нужно явно включить .

Есть ли способ снова включить параметр перенаправления, чтобы я мог динамически перенаправлять в своем контроллере выхода из системы безопасности Grails Spring?

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'

Следующее больше не работает для версий Spring Security 3.0. 6+

5
задан ig0774 17 October 2011 в 01:24
поделиться