Статьи

Слюни Гувнор — Управление доступом

Внешние бизнес или технические правила очень важны для масштабируемых приложений, но доступ к сервису BRMS должен быть управляемым. Guvnor обеспечивает контроль доступа к пользовательскому интерфейсу и операциям с использованием авторизации на основе ролей.

Существует несколько типов разрешений, перечисленных в справочном руководстве drools-guvnor. Админ со всеми разрешениями. Аналитик или Аналитик только для чтения: разрешения аналитика для определенной категории. Администратор пакета, Разработчик пакета или Пакет только для чтения: разрешения пакета для определенного пакета.

Разрешить контроль аутентификации пользователя, обновив файл compenent.xml, расположенный в развернутой папке сервера

1
2
3
4
5
6
...
<component name="org.jboss.seam.security.roleBasedPermissionResolver>
      <property name="enableRoleBasedAuthorization">false</property>
</component>
// change false to true
...

Встраиваемый Guvnor в конфигурацию управления доступом к серверу Jboss:

Остановите сервер guvnor, если он запущен в режиме гостевого пользователя, и включите авторизацию на основе ролей.

Добавьте политику доступа drools-guvnor в файл login-config.xml, расположенный в файле server / default / conf

01
02
03
04
05
06
07
08
09
10
11
<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>

Создайте файлы свойств для пользователей и ролей с соответствующим содержимым:

1
2
3
4
# A roles.properties file for UsersRolesLoginModule (drools-guvnor-roles.properties)
superuser=admin
packuser=package.admin
rulesviewer=package.readonly
1
2
3
4
# A users.properties file for UsersRolesLoginModule (drools-guvnor-users.properties)
rulesviewer=drools
packuser=proto
superuser=admin

Перезапустите сервер Jboss Guvnor и войдите в веб-интерфейс, используя созданные учетные записи.

Использование облегченного контейнера Tomcat и сервера Mysql — Настройка модуля проверки подлинности JAAS drools-guvnor

Предварительные требования: Работа с Drools Guvnor 5.3, развернутой в Apache tomcat 6, работающей с Mysql 5.JDK версии 1.6

0 — развернуть приложение guvnor с именем контекста drools-guvnor.

Все пользователи являются гостями, затем зайдите в панель администрирования и установите авторизацию для пользователя admin или создайте другого пользователя с авторизацией. Остановите сервер, и мы собираемся включить аутентификацию базы данных Jaas

1 — Создайте схему authdb с таблицей guvnorusers в базе данных mysql.

1
2
3
4
5
6
7
8
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 — Создайте собственный логинModule

Загрузите мои собственные источники loginModule customloginmodule_sources Скомпилируйте и экспортируйте эти источники в виде java-архива (jar).

3 — в% TOMCAT_HOME% / lib

Скопируйте экспортированный файл jar loginModule и jar коннектора mysql.

4 — В% TOMCAT_HOME% / conf / context.xml мы добавляем объявление ресурса

1
2
3
4
<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, чтобы настроить наш репозиторий для использования внешней базы данных и параметров безопасности

1
2
3
4
5
<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, чтобы добавить объявление области

1
2
3
4
5
6
7
<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 — Создайте файл jaasConfig на% TOMCAT_HOME% / conf с этим содержимым:

1
2
3
4
drools-guvnor{
com.test.droolsproto.loginModule.module.DroolsLoginModule
required debug=true;
};

8. Перед запуском Tomcat создайте в% TOMCAT_HOME% / bin файл setenv.sh, если вы работаете в Linux или setenv.bat в Windows с этим содержимым (Работа в Linux).

1
2
3
4
JAVA_OPTS=”-Xms128m -Xmx256m -Djava.security.auth.login.config=$CATALINA_HOME/conf/jaasConfig
export JAVA_OPTS

Теперь пришло время перезагрузить ваш сервер guvnor и проверить аутентификацию!

Ссылка: Drools-guvnor управляет доступом — часть 1 , Drools-guvnor управляет доступом — часть 2 от нашего партнера JCG Гаэля-Юрина Нкуи в блоге NGJWEBLOG .