当前位置: 首页 > 工具软件 > Guvnor > 使用案例 >

Drools Guvnor –管理访问

刘安志
2023-12-01
外部化业务或技术规则对于可伸缩应用程序非常重要,但是应该管理BRMS服务访问。 guvnor使用基于角色的授权提供控件UI访问和操作。

在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

 类似资料: