在drools-guvnor参考手册中列出了几种权限类型。 具有所有权限的管理员。 分析师或只读分析师:特定类别的分析师权限。 软件包管理员,软件包开发人员或软件包只读:特定软件包的软件包权限。
通过更新位于服务器部署文件夹中的文件compenent.xml来允许用户身份验证控制
...
<component name="org.jboss.seam.security.roleBasedPermissionResolver>
<property name="enableRoleBasedAuthorization">false</property>
</component>
// change false to true
...
Jboss服务器中的嵌入式Guvnor服务器控件访问配置:
如果以用户访客模式启动,请停止guvnor服务器,并启用基于角色的授权。
在server / default / conf中的文件login-config.xml中添加drools-guvnor访问策略
<application-policy name="drools-guvnor">
<authentication>
<login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule"
flag="required">
<module-option name="usersProperties">
props/drools-guvnor-users.properties</module-option>
<module-option name="rolesProperties">
props/drools-guvnor-roles.properties</module-option>
</login-module>
</authentication>
</application-policy>
为用户和角色创建具有各自内容的属性文件:
# A roles.properties file for UsersRolesLoginModule (drools-guvnor-roles.properties)
superuser=admin
packuser=package.admin
rulesviewer=package.readonly
# A users.properties file for UsersRolesLoginModule (drools-guvnor-users.properties)
rulesviewer=drools
packuser=proto
superuser=admin
重新启动Jboss guvnor服务器,并使用创建的帐户登录Web界面。
使用轻量级容器Tomcat和Mysql服务器–配置drools-guvnor JAAS身份验证模块
先决条件:使用部署在以Mysql 5.JDK 1.6版运行的Apache tomcat 6中的Drools Guvnor 5.3
0 –使用上下文名称drools-guvnor部署guvnor应用程序。
所有用户都是访客,然后进入管理面板并为用户admin设置授权,或创建具有授权的其他用户。 停止服务器,我们将启用Jaas数据库身份验证
1 –使用mysql数据库中的guvnorusers表创建authdb模式。
CREATE TABLE guvnorusers (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`username` varchar(255) DEFAULT NULL,
`password` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
);
INSERT INTO guvnorusers values (1,"admin","admin");
2 –构建自定义的loginModule
下载我的自定义loginModule源customloginmodule_sources编译并将此源导出为Java归档文件(jar)。
3 –在%TOMCAT_HOME%/ lib中
复制loginModule导出的jar文件和mysql连接器jar。
4 –在%TOMCAT_HOME%/ conf / context.xml中,我们添加资源声明
<Resource name="jdbc/URDroolsDS" auth="Container"
type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://yourserveradress:3306/authdb" username="dbuser"
password="dbuserpassword" maxActive="20" maxIdle="10" maxWait="-1" />
5 –更新%TOMCAT_HOME%/ webapps / drools-guvnor / WEB-INF / components.xml,以配置我们的存储库以使用外部数据库和安全设置
<security:identity authenticate-method="#{authenticator.authenticate}"
jaas-config-name="drools-guvnor"/>
<security:role-based-permission-resolver
enable-role-based-authorization="true"/>
6 –更新%TOMCAT_HOME%/ conf / server.xml以添加Realm声明
<Realm className="org.apache.catalina.realm.LockOutRealm">
...
<Realm appName="drools-guvnor"
className="com.test.droolsproto.loginModule.Realm.DroolsJaasRealm"
dataSourceName="jdbc/URDroolsDS" localDataSource="true"/>
...
</Realm>
7 –在%TOMCAT_HOME%/ conf上创建具有以下内容的文件jaasConfig:
drools-guvnor{
com.test.droolsproto.loginModule.module.DroolsLoginModule
required debug=true;
};
8 –如果您在Linux上运行,或者在具有此内容的Windows上运行setenv.bat,则在运行Tomcat之前在%TOMCAT_HOME%/ bin中创建一个setenv.sh文件(在Linux上工作)
…
JAVA_OPTS=”-Xms128m -Xmx256m -Djava.security.auth.login.config=$CATALINA_HOME/conf/jaasConfig”
export JAVA_OPTS
…
现在是时候重新启动您的guvnor服务器并检查身份验证了!
参考: Drools-guvnor管理访问权限-第1部分 , Drools-guvnor管理访问权限-第2部分,来自NGJWEBLOG博客的JCG合作伙伴 Gael-Jurin Nkouyee。
翻译自: https://www.javacodegeeks.com/2012/04/drools-guvnor-manage-access.html