会话超时grails后重定向到登录页面

时间:2014-09-18 09:08:56

标签: grails spring-security session-variables session-timeout

我正在使用grails 2.3.4spring security core 2.0 RC2以及spring security ui 1.0 RC1。每件事都运行正常,但是当会话超时时我会得到以下错误"Error in grail layout main“,因为我在布局的main.gsp文件中调用了会话变量。现在我想在每次会话超时后重定向到登录页面不显示错误页面。在会话超时后重定向我已在bootstrap.groovy文件中完成了

def structureMap1 = Requestmap.findByUrl("/institution/index") ?: new Requestmap(url: "/institution/index",configAttribute: "ROLE_INSTITUTION").save(failOnError:true)

但页面太多,因此很难为每个页面编写。有没有其他方法可以帮助。

1 个答案:

答案 0 :(得分:0)

如何使用SecurityFilters,您可以将它放在conf文件夹中:

class SecurityFilters {
    def filters = {
        catchRememberMeCookie(url: "/**") {
            before = {

                if (!session.user) {
                    def g = new org.codehaus.groovy.grails.plugins.web.taglib.ApplicationTagLib()
                    def confirmurl= g.createLink(controller: controllerName, action: actionName, params:params,  absolute: 'true' )
                    session.lastURL=request.getHeader('referer') ?: confirmurl

                    redirect(controller:'auth',action:'denied')
                    return false
                }
     }
}

此细分是一个示例,由于没有足够的信息来提供详细答案,但有安全过滤器,因此无法回答您的问题 - 这超出了您的所有请求,如果您需要将其重定向到另一个位置,一个特定的值等,那么你可以这样做,如果没有session.user做其他事情,然后将启动所有你的行动