Java ApacheShiro插件与grails中的多租户插件集成

Java ApacheShiro插件与grails中的多租户插件集成,java,maven,grails,shiro,multi-tenant,Java,Maven,Grails,Shiro,Multi Tenant,我有一个特殊情况,我必须使用编译'multi-tenant-single-db-0.8.3'和编译:shiro:1.2.1“来处理以下情况:- 将组域作为租户,以便用户(用于身份验证的Shiro用户)在其组/租户中必须是唯一的。i、 用户可能在其租户之外重复。因此,用户说test@gmail.com在A组中,也可能存在于另一个B组中,因此也可能存在于C组中,依此类推 以下是我拥有的用户域和组域:- @MultiTenant class User { String username

我有一个特殊情况,我必须使用编译'multi-tenant-single-db-0.8.3'编译:shiro:1.2.1“来处理以下情况:-

将组域作为租户,以便用户(用于身份验证的Shiro用户)在其组/租户中必须是唯一的。i、 用户可能在其租户之外重复。因此,用户说test@gmail.com在A组中,也可能存在于另一个B组中,因此也可能存在于C组中,依此类推

以下是我拥有的用户域和组域:-

@MultiTenant
class User {
     String username
     String password
     Group group
 }


Multitenancy插件在域内不起作用(请参阅**s中的代码。此用户必须仅从当前租户(已使用实现TenantResolver的DomainTenantResolver设置)和我创建的用于处理Shiro登录的restservice获取。我发现的一个明显的解决方案是覆盖Shiro插件的功能来处理多租户

在maven上做了很多搜索,看看是否有其他插件或Jar来解决这个问题,但都是徒劳的。 但我感到困惑的是,这个问题是否有其他人实施的解决方案


任何帮助都将不胜感激。

出于好奇,您是否尝试过将Shiro插件与一起使用?Stormpath具有Shiro集成,并在其数据模型中以本机方式支持多租户。已经使用Shiro和多租户单db插件,无法负担Stormpath的费用。我们还有其他选择吗?
class Group implements Tenant {
    String name

    static belongsTo = [parent: Group]
    static hasMany = [users: User]
}
class RestRealm {

    def restService

    static authTokenClass = ru.grails.security.RestToken

    def authenticate(authToken) {
        log.info "Attempting to authenticate ${authToken.token} in REST realm..."
        def token = authToken.token

        // If we don't have user for specified token then user is not authenticated
        def username = restService.getUsernameForToken(token)
        **def user = User.findByEmail(username)**


        if (!user) {
            throw new UnknownAccountException("No account found for token [${token}]")
        }
        if (user?.status == PartyStatus.INACTIVE) {
            throw new InactiveUserException();
        }
        log.info "Found user '${user.email}' in DB"
        return new SimpleAccount(user.email, user.password, "RestRealm")
    }

}