в моем приложении Grails у меня есть несколько простых фильтров защиты (обратите внимание, что это - просто прототип, не коммерческое приложение:
securityCheckFilter(controller:'overview', invert:true) {
before = {
if(!session?.gaSession?.gaUser) {
flash.message = "You are not authorised to see this page. Please login."
redirect(controller:'overview',action:'login')
return false
}
return true
}
}
Что означает, что, кроме контроллера 'обзор', который обрабатывает вход в систему/регистрацию, все другие контроллеры требуют аутентификации. Проблема состоит в том, что я хотел бы реализовать этот типичный поток:
(1) пользователь пробует защищенный URL (2) перенаправление для входа в систему (3) успешный вход в систему (4) перенаправление к URL
В моем коде это работает до точки 3, но я отсутствую 4.
Какие-либо подсказки?
На самом деле это довольно просто. Просто
Чтобы получить целевой URI (в вашем фильтре), просто удалите контекстный путь из прямого URI:
def targetURI = request.forwardURI - request.contextPath