在我的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)用户尝试受保护的网址 (2)重定向登录 (3)成功登录 (4)重定向到 url
在我的代码中,它一直有效,直到第3点,但我错过了4。
任何提示?
答案 0 :(得分:6)
实际上很容易。刚
要获取目标URI(在过滤器中),只需从转发URI中删除上下文路径:
def targetURI = request.forwardURI - request.contextPath