Jhipster - как добавить новую роль

Я пытаюсь добавить новую роль (ROLE_REPORTS) в проект, сгенерированный с помощью JHipster. Я могу видеть таблицы, которые необходимо обновить (роль, полномочия и сопоставление роли_автории), но я не уверен, как продвигаться по части Java.

Есть несколько бит и частей, которые я могу выяснить, но я обеспокоен тем, что моя настройка может нарушить некоторые философии дизайна (например, API Swagger, Spring Безопасность и т.д.).

Кто-нибудь уже пытался это сделать, и если так, то любая помощь в правильном направлении будет высоко оценена.

Ответы

Ответ 1

Добавьте его в систему безопасности/ВластиConstants.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";
}

И в константах .js:

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

Новая роль должна быть добавлена ​​в базу данных. Например, authority.csv:

name
ROLE_ADMIN
ROLE_USER
ROLE_MANAGER

Ответ 2

Это будет еще проще в 4.5.5

1- Изменить полномочияConstants.java

2- Добавить новую роль в файл authority.csv

Запустите приложение, новая роль должна появиться в интерфейсе (администрирование/управление пользователями/создание нового пользователя) (возможно, может быть полезно удалить целевой контент \h2db\db в вашем приложении)

Ответ 3

Для Jhipter 4.3 есть такое решение:

  1. Изменить AuthoritiesConstants.java
  2. Добавить новую роль в файле members.csv
  3. Обновите таблицу JHI_AUTHORITY, включив новую роль
  4. Измените user-management-dialog-component.ts, расположенный здесь \webapp\app\admin\user-management

Перезапустите приложение. Новая роль должна появиться в интерфейсе (Администрирование/Управление пользователями/Создать нового пользователя). (Может быть полезно удалить содержимое target\h2db\db в вашем приложении.)

Ответ 4

При добавлении значений в authority.csv эти значения не будут добавлены непосредственно в таблицы, так как это просто добавленное значение в таблицу, поэтому нет никаких различий в изменении Liquibase, нам придется добавить его вручную в БД...

Ответ 5

После редактирования безопасности /AuthoritiesConstants.java. Вы можете добавить новый список изменений в liquibase и добавить новый app_authorities.csv. Как ниже

Image showing how to do

Мой app_authorities.csv выглядит так.

name
ROLE_VENDOR