我正在使用grails 2.3.4
和spring 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)
但页面太多,因此很难为每个页面编写。有没有其他方法可以帮助。
答案 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做其他事情,然后将启动所有你的行动