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 есть такое решение:
- Изменить AuthoritiesConstants.java
- Добавить новую роль в файле members.csv
- Обновите таблицу JHI_AUTHORITY, включив новую роль
- Измените 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