GRAILS ACEGI 关于登出返回指定URL
目前ACEGI PLUGIN支持Logout只是返回到配置文件中配置的afterLogoutUrl,如果不同的角色登出需要返回不同的地址,就需要利用传递参数的方式。
修改如下:
在org.codehaus.groovy.grails.plugins.springsecurity.LogoutFilterFactoryBean文件内,修改内部类FixRedirectLogoutFilter的sendRedirect方法,添加如下:
url = request.getParameter("url")?request.getParameter("url"):url;
这样只是保证如果传递URL进来,可以到指定地址。再修改我们的LogoutController,添加一个新的方法:
def adminLogout = {
redirect(uri: '/j_spring_security_logout?url=/admin')
}
然后修改view页面:
<g:link controller="logout" action="adminLogout"> 退出</g:link>
Done.