【问题标题】:Why authority is so complex?为什么权威如此复杂?
【发布时间】:2017-04-13 07:13:29
【问题描述】:

我不明白为什么Authority 在 JHipster 中如此复杂?创建另一个只有一个字段name 的实体的原因是什么?此外,它还有一个 csv 文件,可以使用 Liquibase 将模板上传到数据库。
我有一个创建枚举的想法(请参阅this answer):

@Entity
@Table
public enum Authority {

    USER, ADMIN;

    @Id
    private String title = "ROLE_" + name();

}

然后我决定这也没有必要。它可以是一个没有注释的枚举,而只是一个Set(甚至是一个EnumSet):

private Set<Authority> authorities = new HashSet<>();

我错过了什么吗?也许它对 JPA 有用?
我想在 GitHub 上创建一个问题,但我认为这是一个更好的地方。

【问题讨论】:

    标签: jhipster


    【解决方案1】:

    GrantedAuthority 由 Spring Security 定义,默认实现 SimpleGrantedAuthority 只有一个角色名称,但可以扩展为具有更多属性,所以我猜 JHipster 的实体实现了这种可能性。

    【讨论】:

    • 但是实体如何帮助使用 GrantedAuthority?我仍然可以做到new SimpleGrantedAuthority(Authority.ADMIN.toString())。我只是觉得authorityRepository.findOne("ROLE_USER")在注册和应用的其他部分是不必要的,我们可以使用Collections.singleton(Authority.USER)。
    • 在我看来,您只是想像一个静态的角色列表。在网关的情况下,您可以轻松地从用户管理中创建新角色,这些角色不被网关代码本身解释(因此没有常量,没有枚举),并从代理微服务中的 JWT 声明中获得解释。
    • 我确定还有其他原因,但这是我现在在项目中使用的原因:)
    猜你喜欢
    • 2017-10-27
    • 2019-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-11
    • 2013-02-25
    • 1970-01-01
    相关资源
    最近更新 更多