【问题标题】:jhipster- how to add a new rolejhipster-如何添加新角色
【发布时间】:2015-01-30 05:19:15
【问题描述】:

我正在尝试在使用 JHipster 生成的项目上添加新角色 (ROLE_REPORTS)。我可以看到需要更新的表(角色、权限和角色权限映射),但我不确定如何处理其中的 Java 部分。

我可以弄清楚一些点点滴滴,但我担心我的自定义可能会破坏一些设计理念(如 Swagger API、Spring Security 等)

是否有人已经尝试过,如果有,我们将非常感谢您在正确方向上的任何帮助。

【问题讨论】:

标签: java jhipster


【解决方案1】:

将其添加到 security/AuthoritiesConstants.java。和 webapps/scripts/contstants.js。在下面的示例中,添加了 MANAGER 的权限/角色。

public final class AuthoritiesConstants {

    private AuthoritiesConstants() {
    }

    public static final String ADMIN = "ROLE_ADMIN";

    public static final String USER = "ROLE_USER";

    public static final String MANAGER = "ROLE_MANAGER";

    public static final String ANONYMOUS = "ROLE_ANONYMOUS";
}

在 constants.js 中:

myApp.constant('USER_ROLES', {
        'all': '*',
        'admin': 'ROLE_ADMIN',
        'user': 'ROLE_USER',
        'manager', 'ROLE_MANAGER'
    });

必须将新角色添加到数据库中。例如,authorities.csv:

name
ROLE_ADMIN
ROLE_USER
ROLE_MANAGER

【讨论】:

  • 当前2.18版本找不到constants.js文件。我猜它已经不存在了。
  • 在 Jhipster 2.20 中添加角色的当前工作流程是什么? constants.js 不再存在。
  • 在当前版本的 Jhipster 中,您不需要更新 constants.js(该文件不再存在),但您确实需要更新 Angular 用于用户管理的角色列表user-management.controller.jsuser-management-dialog.controller.js
  • 在 Jhipster 的当前 3.8.0 版本中,这不起作用。这里是正确答案stackoverflow.com/a/34890367/3937190
【解决方案2】:

对于 Jhipter 4.3,有这个解决方案:

  1. 修改 AuthoritiesConstants.java
  2. 在 authority.csv 文件中添加新角色
  3. 通过包含新角色来更新表 JHI_AUTHORITY
  4. 修改位于 \webapp\app\admin\user-management 此处的 user-management-dialog-component.ts

重新运行应用程序。新角色应出现在界面中(管理/用户管理/创建新用户)。 (也许删除应用中的 target\h2db\db 内容会很有用。)

【讨论】:

    【解决方案3】:

    这在 4.5.5 中会更容易

    1- 修改 AuthoritiesConstants.java

    2- 在 authority.csv 文件中添加新角色

    重新运行应用程序,新角色应该出现在界面中(管理/用户管理/创建新用户)(也许删除应用程序中的target\h2db\db内容会很有用)

    【讨论】:

    • 如果您正在运行站点的生产版本并且不想破坏您的数据库,则不要在 authority.csv 中添加新角色。它会导致 liquibase 抛出异常。相反,您需要进入数据库并将角色手动添加到 JHI_AUTHORITY。不过,您仍然需要执行第 1 步。
    【解决方案4】:

    将值添加到 authority.csv 不会直接将这些值添加到表中,因为这只是添加到表中的值,因此 Liquibase 更改没有区别,我们必须手动将其添加到 DB.. .

    【讨论】:

      【解决方案5】:

      编辑 security/AuthoritiesConstants.java 后。您可以添加新的 liquibase 更改日志并添加新的 app_authorities.csv。如下

      我的 app_authorities.csv 看起来像这样。

      name
      ROLE_VENDOR
      

      【讨论】:

        猜你喜欢
        • 2016-07-30
        • 1970-01-01
        • 1970-01-01
        • 2017-07-06
        • 2021-03-22
        • 1970-01-01
        • 1970-01-01
        • 2017-10-15
        • 2021-05-03
        相关资源
        最近更新 更多