使用Grails Acegi插件时,用户域;已启用";字段设置为false。用户仍然可以登录

使用Grails Acegi插件时,用户域;已启用";字段设置为false。用户仍然可以登录,grails,groovy,grails-plugin,spring-security,Grails,Groovy,Grails Plugin,Spring Security,Acegi Grails插件是否支持本机禁用用户 从文档中可以看出,它似乎支持“已启用”字段。。 但是在将用户“enabled”字段设置为false之后,用户仍然可以登录,并且不会引发任何“user is disabled”异常(尽管在默认的logincontroller中似乎有一个捕获用户禁用异常的捕获) 如果支持此功能,除了将用户“已启用”字段设置为false之外,是否还需要其他更改 猜测这可能不受支持,我在登录控制器中添加了一个检查,以检查用户登录时是否已启用,并将其发送回登录屏幕,同时显

Acegi Grails插件是否支持本机禁用用户

从文档中可以看出,它似乎支持“已启用”字段。。 但是在将用户“enabled”字段设置为false之后,用户仍然可以登录,并且不会引发任何“user is disabled”异常(尽管在默认的logincontroller中似乎有一个捕获用户禁用异常的捕获)

如果支持此功能,除了将用户“已启用”字段设置为false之外,是否还需要其他更改

猜测这可能不受支持,我在登录控制器中添加了一个检查,以检查用户登录时是否已启用,并将其发送回登录屏幕,同时显示一条已禁用的消息

    def index = {
   if (isLoggedIn()) {
    def dc = authenticateService.principal().domainClass
        def user = User.get( dc.id )
        if (!user.enabled){
            session.invalidate()
            flash.message = "User '"+user.username+"' is disabled."
            redirect action: auth, params: params
        }else{
            setLoginDate()
            redirect uri: '/home/'
        }
    }

但是,这只有在我直接访问登录页面时才起作用。在应用程序中输入url(例如*/user/list)后尝试登录时;用户登录并获取url,而无需在logincontroller中调用我的检查

尝试改用过滤器。我不确定是否调用了索引闭包,除非您确实找到了该控制器的基本URI


user.enabled==0
永远不会为真-它是一个布尔值,因此如果(!user.enabled){