grails - Grails Spring Security多个自定义(域)类

标签 grails spring-security

我的网站有两种类型的用户:卖方和买方。这两个域类别都不同(卖方进行拍卖,买方进行出价)。如何使用Spring安全性插件创建两个域类?

  • 将User类扩展到卖方和买方-这将不起作用,因为我必须为 Spring 安全性注册一个类
  • 将用户对象作为卖方和买方中的属性。那行得通吗?有人尝试过吗?

  • 我在互联网上找不到示例。我发现的是如何通过修改User类或扩展它来自定义插件。如果您能指出我的方向,那将是很好的。我是Grails的新手。谢谢。

    最佳答案

    这实际上取决于卖方和买方的含义。

    如果与Amazon.com类似;他们如何允许一个帐户(也称为用户)拥有卖方资料和客户(买方)资料,然后您可以将卖方和买方属性添加到用户。

    class User { 
        Seller seller
        Buyer buyer
    }
    

    然后,您将根据需要选择适当的配置文件。
    springSecurityService.currentUser.seller
    // or
    springSecurityService.currentUser.buyer
    

    如果用户只能是买方或卖方,则一对一关联将是最佳选择,但它需要买方和卖方具有共同的父类(super class)。
    class User { 
        Static hasOne = [profile: UserProfile]
    }
    
    class UserProfile { }
    
    class Seller extends UserProfile {
        User user
    }
    
    class Buyer extends UserProfile {
        User user
    }
    

    但是使用这种方法,您将不知道自己拥有哪种类型的配置文件。因为
    springSecurityService.currentUser.profile
    

    可以返回任何一种类型。如果类型很重要,那就是一个警告信号,一对一不是正确的选择。另一种可能是用户域中的用户类型属性。

    关于grails - Grails Spring Security多个自定义(域)类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32083119/

    相关文章:

    在 grails 中作为 map 值列出

    grails - GORM/Grails - 向 joinTable 表达式添加额外的列

    spring-security - 如何使用 fetch API 和 VanillaJS 将 CSRF token 添加到 HTTP header

    java.lang.NoClassDefFoundError : org/springframework/web/servlet/support/RequestDataValueProcessor

    Spring boot 1.5.9,访问 Docker 容器中的资源镜像时出现 404 错误

    Grails 服务 : can these be configured to run on a scheduled basis?

    grails - grails log4j不适用于自定义追加程序

    java - @autowired 在 UsernamePasswordAuthenticationFilter Spring Boot 中为 null

    java - 如何使用基于 Java 的配置创建两个 http 安全配置?

    grails - 满足多个表条件