我有两个使用JASIG CAS Client Plugin的单独Grails应用程序。当我的应用程序运行时,不同的用户可以对我的CAS服务器进行身份验证(使用客户端插件)。
除了身份验证之外,我在两个应用程序中都使用Grails Filter来 授权 。用户可能已经过身份验证,但我想确保只有特定用户才能访问相应的应用程序。
一切正常,但以下情况除外:
我的应用程序启动时,是否需要在任何时候刷新会话?如果是这样,我该怎么做?这是我的过滤器的代码:
import edu.yale.its.tp.cas.client.filter.CASFilter
class SecurityFilters {
def filters = {
loginCheck(controller: '*', action: '*') {
before = {
def username = session?.getAttribute(CASFilter.CAS_FILTER_USER)?.toLowerCase()
if (username in grailsApplication.config.users) {
return true
} else {
render view: '/invalid_user', model: [username: username]
return false
}
}
}
}
}