我正在尝试在使用JHipster生成的项目上添加新角色(ROLE_REPORTS)。我可以看到需要更新的表(角色,权限和role_authority映射),但我不知道如何去处理它的Java部分。
我可以想出一些零碎的东西,但我担心我的定制可能会破坏一些设计理念(如Swagger API,Spring Security等)。
是否有人已经尝试过,如果是这样,任何正确方向的帮助都将受到高度赞赏。
答案 0 :(得分:24)
将其添加到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
答案 1 :(得分:3)
这在4.5.5
中会更容易1-修改AuthoritiesConstants.java
2-在authority.csv文件中添加新角色
重新运行应用程序,新角色应出现在界面中(管理/用户管理/创建新用户)(也许删除应用中的target \ h2db \ db内容会很有用)
答案 2 :(得分:2)
对于Jhipter 4.3,有这个解决方案:
重新运行该应用程序。新角色应出现在界面中(管理/用户管理/创建新用户)。 (也许删除应用中的target \ h2db \ db内容会很有用。)
答案 3 :(得分:0)
将值添加到Authority.csv不会将这些值直接添加到表中,因为这只是添加到表中的值,因此Liquibase更改没有差异,我们将不得不手动将其添加到数据库中。
答案 4 :(得分:0)
编辑security / AuthoritiesConstants.java之后。您可以添加新的liquibase更改日志并添加新的app_authorities.csv。如下
我的app_authorities.csv看起来像这样。
name
ROLE_VENDOR