JHipsterを使用して生成されたプロジェクトに新しいロール(ROLE_REPORTS)を追加しようとしています。更新が必要なテーブル(role、authority、およびrole_authorityマッピング)は表示されますが、Javaの一部についてはどうしたらよいかわかりません。
私が理解できるいくつかの部分がありますが、私のカスタマイズが一部の設計哲学(Swagger API、Spring Securityなど)を壊すのではないかと心配しています。
誰かがすでにそれを試みたことがあるなら、正しい方向への助けがあれば高く評価されます。
それを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
これは4.5.5でさらに簡単になります
1- AuthoritiesConstants.Javaを変更します
2-新しいロールをauthorities.csvファイルに追加します
アプリケーションを再実行すると、新しいロールがインターフェイスに表示されます(管理/ユーザー管理/新しいユーザーを作成します)(アプリのtarget\h2db\dbコンテンツを削除すると役立つ場合があります)
Jhipter 4.3の場合、このソリューションがあります。
アプリケーションを再実行します。新しい役割がインターフェースに表示されます(管理/ユーザー管理/新しいユーザーの作成)。 (アプリのtarget\h2db\dbコンテンツを削除すると便利な場合があります。)
Authors.csvに値を追加しても、これらの値は直接テーブルに追加されません。これは単なるテーブルに追加された値なので、Liquibaseの変更に違いはなく、DBに手動で追加する必要があります...
Security/AuthoritiesConstants.Javaを編集した後。新しいliquibase変更ログを追加して、新しいapp_authorities.csvを追加できます。以下のように
私のapp_authorities.csvは次のようになります。
name
ROLE_VENDOR