среда, 19 августа 2009 г.

Свершилось!!! Запуск процесса Intalio.

Наконец-то, после долгого проектирования состоялся запуск процесса, отвечающего за одну из наиболее масштабных и частых задач. Позднее чуть более подробно распишу про сам процесс и про про то как реализовано.
Процесс отвечает за работу:
- заказчиков
- руководителей заказчиков
- проджект менеджера
- исполнителей задания

Эту статью Вы можете прочитать на новом блоге 

понедельник, 17 августа 2009 г.

Intalio - как отправить e-mail

Ниже приведен пример настройки сервера для использования почтового сервиса. Данная настройка позволит отправляь почту, но в нем нет возможности отправлять вложенные файлы. Немного позже выложу инфу о том, как отправлять файлы с вложениями.

Для того, чтобы загрузить сервис EmailHTMLService.aar необходимо его скачать:

Загрузка “EmailHTMLServiceWS.aar” в Axis2:
1. Убедиться что Intalio-bpms Server уже запущен.
2. Открыть веб-браузер и перейти по ссылке http://[Intalio|Server]:8080/axis2/.
3. Щелкнуть по Administration
4. Ввести имя и пароль:
Login: admin
Password: axis2
5. Нажать Upload Service
6. Щелкнуть Available Services и убедиться что сервис EmailHTMLServiceWS в списке присутствует
7. Щелкаем по сервису EmailHTMLServiceWS и загружаем его, после чего сохраняем (с расширением *.wsdl) в дальнейшем его можно будет использовать в различных проектах.

Требования для работы e-mail сервиса:
1. Скачать с официального сайта «Sun Microsystems» - http://java.sun.com/products/javamail/downloads/index.html архивы «jaf-1_1_1.zip» и «javamail-1_4_1.zip».
2. Из архивов «jaf-1_1_1.zip» и «javamail-1_4_1.zip» взять java архивы:
activation.jar ( jaf-1_1_1.zip)
mail.jar (javamail-1_4_1.zip)
dsn.jar (javamail-1_4_1.zip)
imap.jar (javamail-1_4_1.zip)
mailapi.jar (javamail-1_4_1.zip)
pop3.jar (javamail-1_4_1.zip)
smtp.jar (javamail-1_4_1.zip)
скопировать их в папку: Java\Jdk1.6.0_07[текущая версия уставленного Jdk в системе]\jre\lib\ext
3. Скопировать MailConfig.inf server_bpms\bin\
Содержание MailConfig.inf:
from=epopov@lavtech.ru (адрес с которого будет отправляться почта)
host=localhost (хост)
user=epopov (имя пользователя)
password=
4. В файл /usr/share/intalio-bpms-5.2.0.050/var/config/config-substitutions.properties добавить:
SMTPPort=25
5. Если в usr/share/intalio-bpms-5.2.0.050/var/config/config.xml были изменены строки на:

<module load="false" name="org.apache.geronimo.configs/javamail/2.0.1/car">
<gbean name="SMTPTransport">
<attribute name="host">servername</attribute>
<attribute name="port">25</attribute>
</gbean>
</module>

Тогда изменить на:

<module load="false" name="org.apache.geronimo.configs/javamail/2.0.1/car">
<gbean name="SMTPTransport">
<attribute name="host">localhost</attribute>
<attribute name="port">25</attribute>
</gbean>
</module>
5. Перезагрузить сервер.

PS: SENDEMAIL_OK — папка с файлами для проекта и правленными config.xml, MailConfig.inf, config-substitutions.properties.

12. Для отправки почты на русском языке надо прописать в Mapper'e "plain; charset=utf-8" к полю wsdl SendEmail Type.

Эту статью Вы можете прочитать на новом блоге

суббота, 15 августа 2009 г.

Проблемы с русским языков в Apache LDAP

Проблема русского языка в Apache LDAP:
В Apache Directory имеется присутствует проблема при использовании русского языка в полях. это выглядит следующим образом: Аутентификация проходит, но при попытке стартануть таск, Intalio выдает ошибку Error Send Request. Проблема решена с помощью использования только больших русских букв.

Эту статью Вы можете прочитать на новом блоге

Настройка Geronimo/Tomcat для использования атрибутов LDAP

Настройка Geronimo для использования аттрибуов LDAP, создание новых аттрибутов в LDAP:

Настройка Geronimo для использования аттрибутов LDAP:
Для того, чтобы можно было использовать аттрибуты LDAP в Intalio, следует в файле настроек [Geronimo Server]/var/config/ldap.properties в раздел, который представлен ниже добавить строки который выделены красным цветом:
#
# The LDAP attribute names of an user
# Format: 'ldap property:alias'
#
security.ldap.user.prop.0=cn
security.ldap.user.prop.1=ou
security.ldap.user.prop.2=objectclass:objectclass
security.ldap.user.prop.3=sn
security.ldap.user.prop.4=givenname:givenname
security.ldap.user.prop.5=mail:email
security.ldap.user.prop.6=:uid
security.ldap.user.prop.7=l:streetaddress
security.ldap.user.prop.8=roomNumber:roomnumber
security.ldap.user.prop.9=nsrole:nsrole
security.ldap.user.prop.10=nsroledn:nsroledn
security.ldap.user.prop.11=telephoneNumber:phone
security.ldap.user.prop.12=myMail
security.ldap.user.prop.13=bossMail

т.е. 11,12,13 аттрибуты мы довалил сами. После двоеточего стоит представление аттрибута, как оно будет отображаться в Intalio, его можно не указывать. После того как аттрибуты в ldap.properties добавлены следует перезагрузить сервер geronimo.

Использование аттрибутов LDAP в Intalio:
Сервис, позволяющий обращаться к LDAP и получать необходимую информацию находится по адресу http://devnmark:8080/axis2/services/RBACQueryService?wsdl . Чтобы получать значения аттрибутов используется операция getUserProperties. данные помещаются в массив. Порядок непонятен, но думаю это непроблема и при условии, что количество аттрибутов одинаково, а также одинаковые аттрибуты используются порядок будет идентичен.

Создание новых аттрибутов:
Для создания новых атрибутов LDAP надо использовать Apache Directory Studio. Затем надо открыть Root\ou=shema\cn=core\ou=ObjectClasses\m-oid=2.5.6.7 сюда надо добавить например аттрибут bossMail, для этого переходим на правую часть окна и добавляем новый аттрибут m-may=bossMail, эту же операцию повторяем для классов m-oid=2.5.6.6 и m-oid=2.5.6.5.
Затем переходим к созданию аттрибута. Для этого переходим к root\ou=shema\cn=core\ou=atributeTypes копируем к примеру m-oid= 2.5.4.56 и вставляем изменив последнюю цифру на 57 (итерация на 1), затем открываем m-oid=2.5.4.57 и меняем в нем значение аттрибута m-name на bossMail. Также можно поменять значение аттрибута description на RFC2256: bossMail.
На этом создание атрибута завершено, после операции добавления атрибута следует перезагрузить LDAP сервер.

Эту статью Вы можете прочитать на новом блоге

четверг, 13 августа 2009 г.

Создание Directtory для Intalio с помощью Apache Directory Studio

Для того, чтобы создать подключение к серверу, нужно создать connection, приведен пример на след рисунке: Далее приведен пример настройки подключения:
Connection name: имя подключения
Hostname: имя хоста, на котором находится сервер LDAP ApacheDS
Port: Номер порта, по которому располагаться LDAP сервер
Затем, проверяем правильность параметров — Check Network Parameter, если все настроено правильно появиться следующее сообщение:
После того как настроены Network Parameters надо настроить Аутентификацию (Authentication):
Authentication Method: Simple Authentication
Bind DN or user: uid=admin, ou=system
Bind password: secret
Для того, чтобы проверить корректность настройки следует нажать Check Authentication, если после нажатия появиться следующее сообщение, то настройка выполнена верно, и далее можно продолжать работать с сервером (создавать пользователей, роли, права и т.д.)
Добавление домена в Root Directory (там будем заводить пользователей и роли):

Для того, чтобы добавить домен, следует нажать правую клавишу мыши на Root DSE, в открывшемся меню затем надо выбрать «New context entry», затем ставим флажок «Create Entry from scratch» и нажимаем кнопку «Next». Затем в окне «Available object classes» находим «domain», выбираем его и нажимаем на кноку «Add» и жмем опять кнопку «Next». В следующем заполняем окне заполняем «Please enter the DN of the context entry», где ставим параметр «dc=idirectory». В результате этих операций у нас появляется домен «dc=idirectory».
Следующим этапом идет создание ролей и пользвателей. Пользователи и роли создаются в dc=idirectory (dc — domain controller), а именно в ou=Users — Пользователи, а в ou=Roles — роли (ou — organization unit) (Users и Roles названы так, потому что они прописаны в ldap.properties, их можно изменить на другие значения в случае необходимости).

Создание ou=Users
Для того чтобы создать ou=Users, требуется выполнить следующее:
1.устанавливаем курсор на dc=idirectory
2.нажимаем правую клавишу мыши и выбираем «New entry»
3.Выбираем object class — organizationalUnit, нажимаем «Add», затем нажимаем «Next»
4.Следующее окно запоняется в соответствии со следующим рисунком:
После заполнения нажимаем кнопку «Next».
1.В следующем окне нажимаем «Finish», т.к. других объектов нам добавлять не требуется.
На этом заканчивает создание ou=Users

Создание ou=Roles
Роли создаются аналогично ou=Users

Создание пользователя (cn=Anna)
cn — Common Name
1. Нажимаем правой клавишей мыши на ou=Users, затем в появившемся меню выбираем «New entry»
2. Выбираем «Create entry from scratch», нажимаем «Next»
3. В следующем окне выбираем Object Class — organizationalPerson, нажимаем «Add», затем «Next»
4. Следующее окно запоняется в соответствии со следующим рисунком:
После заполнения нажимаем кнопку «Next».
5. В появившемся окне требуется добавить новый аттрибут — такой как userPassword, в него следует ввести пароль пользователя. Атрибуты cn, sn = Anna (Anna - \то пример в данном случае, имя пользователя).
6. После завершения всех операций нажимаем «Finish».
Таким образом пользователь создан.

Создание роли (cn=BI)
1. Нажимаем правой клавишей мыши на ou=Users, затем в появившемся меню выбираем «New entry»
2. Выбираем «Create entry from scratch», нажимаем «Next»
3. В следующем окне выбираем Object Class — groupOfUniqueNames, нажимаем «Add», затем «Next»
4. Следующее окно запоняется в соответствии со следующим рисунком:

После заполнения нажимаем кнопку «Next».
5. В атрибуте uniquemember пишем слудующее: «cn=Anna,ou=Users,dc=idirectory». Если требуется одной роли назначить несколько uniquemember, то следует добавить этот аттрибут неоходимое количество раз.
6. Затем нажимаем «Finish».

Теперь можно логинится в Intalio UI-FW и пользоваться аутентификацией через LDAP Apache Directory.
Эту статью Вы можете прочитать на новом блоге 

Настройка аутентификациии Intalio. LDAP.

Настройка Intalio на LDAP Apache Directory.
В Community Edition есть одна особенность при подключении к LDAP - нет возможности подключится к Active Directory. Весьма странно т.к. используется протокол LDAP. Подключение к Active Directory присутствует в Enterprise Edition.

Настройка Intalio|Server на Apache LDAP
1. Требуется скачать ApacheDS (Apache Directory Server) с http://directory.apache.org, затем его установить на Linux сервере.
2. Для удобного использования всех "прелестей" Apache LDAP качаем с http://directory.apache.org клиента Apache Directory Studio.
3. После установки Apache LDAP надо запустить сервер LDAP (Пример: >sudo /etc/rc.d/init.d/apacheds-1.5.4-company start). Останов сервера LDAP - >sudo /etc/rc.d/init.d/apacheds-1.5.4-company stop.
4. Затем после установки и старта сервера LDAP требуется настроить Intalio|Server на LDAP. Делается это следующим образом:
в файле [Intalio Server]/var/config/securityConfig.xml следует раскоментировать часть кода, которая выделена зеленым цветом (настройка аутентификации через LDAP), а ту часть, которая выделена красным цветом (это настройки аутентификации которые используют security.xml в качесте хранилища данных аутентификации) следует закоментировать.

[Intalio Server]/var/config/securityConfig.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<!--
Copyright (c) 2005-2006 Intalio inc.

All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html

Contributors:
Intalio inc. - initial API and implementation
-->
<beans>

<bean id="realms" class="org.intalio.tempo.security.impl.Realms">
<property name="defaultRealm" value="intalio"/>
<property name="securityProviders">
<list>
<ref bean="securityProvider"/>
</list>
</property>
</bean>

<!-- <bean id="securityProvider" class="org.intalio.tempo.security.simple.SimpleSecurityProvider" init-method="init">
<property name="configFile">
<value>${org.intalio.tempo.configDirectory}/security.xml</value>
</property>
</bean>-->

<!-- Uncomment this section (and comment the above SimpleSecurityProvider) to enable LDAP support -->
<bean id="securityProvider" class="org.intalio.tempo.security.ldap.LDAPSecurityProvider">
<property name="propertiesFile">
<value>${org.intalio.tempo.configDirectory}/ldap.properties</value>
</property>
</bean>

<bean id="tokenHandler" class="org.intalio.tempo.security.impl.TokenHandler">
<property name="secret"><value>mySecret</value></property>
</bean>

<bean id="tokenService" class="org.intalio.tempo.security.impl.TokenServiceImpl">
<property name="realms"><ref bean="realms"/></property>
<property name="tokenHandler"><ref bean="tokenHandler"/></property>
</bean>

</beans>

5. Теперь нужно произвести настройки в файле [Intalio Server]/var/config/LDAP.properties. В нем требуется прописать настройки нашего LDAP сервера:

[Intalio Server]/var/config/LDAP.properties:
(Зеленым выделены места изменения настроек)
#
# Configuration for Apache Directory Server
#

#
# The ULR for the LDAP Server
# The default is 'ldap=://localhost:389/'.
#URL Ldap сервера
java.naming.provider.url=ldap://localhost:10389

#
# The user of the LDAP Server connection
# For example: 'cn=Directory Manager'.
#Пользователь, который используется для подключения к LDAP
#изменять его не требуется
java.naming.security.principal=uid=admin,ou=system

#
# The credentials or password of the connection
# For example: 'password'.
#Пароль для вышеприведенного пользователя
java.naming.security.credentials=secret

#
# Authetication method to connect to the LDAP Server
# The default is 'simple'.
#
java.naming.security.authentication=simple

#
# The supported realm(s) for the directory. The properties
# list name of the realm, and the base DN separated by a
# colon (':')
# For example: 'airrus:dc=airrus,dc=com'.
#контроллер домена idirectory можно создать в apach directory studio
security.ldap.realm.0=intalio:dc=idirectory

#
# The ldap factory for the directory service
# The default is 'com.sun.jndi.ldap.LdapCtxFactory'.
# (without quotes, same below)
#
java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory

#
# The user's sub-context
# For example: 'ou=People', if people belongs to
# 'ou=People'
#Место где будут находится наши пользователи (создаем в Apache Directory Studio)
security.ldap.user.base=ou=Users

#
# The role or group's sub-context
# For example: 'ou=Roles', if roles belongs to
# 'ou=Roles'.
#Роли наших пользователей
security.ldap.role.base=ou=Roles

#
# An LDAP attribute name that identifies an user
# For example: 'uid'.
#Аттрибут для индентификации пользователей
security.ldap.user.id=cn

#
# The LDAP attribute name that identifies a role
# For example: 'cn'.
#
#Аттрибут для индентификации ролей пользователей
security.ldap.role.id=cn

#
# The LDAP attribute name that references a role's ascendants
# If this attribute is specified, leave 'security.ldap.role.descen' out
# For example, if standard Role is used for access control, specify
# 'nsRoleDN' or a corresponding attribute of the particular server,
# and leave out security.ldap.role.descen properties.
#
#security.ldap.role.ascen=nsRoleDN

#
# The LDAP attribute name that references a role's descendants or members.
# If this attribute is specified, leave security.ldap.role.ascen out.
# For example, if Group is used for access control, specify 'member'
# or a corresponding attribute of the particular server, and leave out
# security.ldap.role.ascen
#
#security.ldap.role.descen=uniquemember

#
# The LDAP attribute name of an user object that references the user's roles
# For example, 'nsRoleDN'.
#
#security.ldap.user.roles=nsRoleDN

#
# The LDAP attribute name of a role (or group) that references the role's
# users.
# For example, 'uniquemember'.
#Аттрибут для пользователей роли
security.ldap.role.users=uniquemember

#
# The attribute name of an user's calculated effective roles.
# If Role is used, specify 'nsRole' or a corresponding attribute
# of the particular server. For Group with Active Directory,
# specify 'memberOf'. If unsure, leaves it out
#
#security.ldap.user.allroles=nsRole

#
# The permissions' sub-context
# For example, 'ou=Permission'.
#
security.ldap.perm.base=ou=Permission

#
# The LDAP attribute name of a role that references permission objects
# For example: 'permissions'.
#
security.ldap.role.perms=permission

#
# The LDAP attribute of permission object that reference the permission's
# roles or groups
# For example: 'nsRoleDN'.
#
#security.ldap.perm.roles=nsRoleDN

#
# The LDAP attribute of permission object that references the permission's
# protected resources.
# For example: 'resource'.
#
security.ldap.perm.objects=resource

#
# The LDAP attribute name that identifies a permission object
# For example, 'cn'.
#
security.ldap.perm.id=cn

#
# The LDAP attributes names of an user's credentials or passwords
# of the user.
# Format: 'ldap property:alias'
# For example, 'userPassword:password'.
#
security.ldap.user.credential.0=userPassword:password
#security.ldap.user.credential.1=userCertificate

#
# The LDAP attribute names of an user
# Format: 'ldap property:alias'
#
security.ldap.user.prop.0=cn
security.ldap.user.prop.1=ou
security.ldap.user.prop.2=objectclass:objectclass
security.ldap.user.prop.3=sn
security.ldap.user.prop.4=givenname:givenname
security.ldap.user.prop.5=mail:email
security.ldap.user.prop.6=:uid
security.ldap.user.prop.7=l:streetaddress
security.ldap.user.prop.8=roomNumber:roomnumber
security.ldap.user.prop.9=nsrole:nsrole
security.ldap.user.prop.10=nsroledn:nsroledn
security.ldap.user.prop.11=telephoneNumber:phone
#Красным выделены аттрибуты, которые были созданы вручную
security.ldap.user.prop.12=myMail

security.ldap.user.prop.13=bossMail
security.ldap.user.prop.14=zFIO
security.ldap.user.prop.15=TopManMail
security.ldap.user.prop.16=MarketingMail
security.ldap.user.prop.17=ProjectManagerMail

#
# The LDAP atrribute names of a role or group
# Format: 'ldap property:alias'
#
security.ldap.role.prop.0=cn:cn
security.ldap.role.prop.1=ou:ou
security.ldap.role.prop.2=ObjectClass:objectclass
security.ldap.role.prop.3=uniquemember:member

Таким образом, меняем на свои значения только те значения, коорые выделены зеленым цветом. Красным выделены аттрибуты, созданные вручную в Apache LDAP, в поставке Intalio|Server в данном файле их нет - они добавляются вручную по мере необходимости.

6. Продолжаем настройку LDAP сервера.
Путь к настройкам LDAP сервера:
/etc/rc.d/init.d/apacheds-1.5.4-company в этом файле находится путь по которому находятся настройки

INSTANCE_HOME="/var/lib/apacheds-1.5.4"
APACHEDS_HOME="/opt/apacheds-1.5.4"
INSTANCE="company"

INSTANCE_HOME/INSTANCE ― ПУТЬ к настройкам

/opt/apacheds-1.5.4/conf/apacheds.conf — файл с путем по нижней строчке точно также можно определить путь
wrapper.app.parameter.3=%INSTANCE_HOME%/%INSTANCE%/conf/server.xml

Продолжаем настройку LDAP сервера:
Для окончательной настройки LDAP сервера необходимо произвести небольшие изменения в файле настроек /var/lib/apacheds-1.5.4/company/conf/server.xml

Изменения выделены зеленым цветом:
<!-- Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->


<spring:beans xmlns:spring="http://xbean.apache.org/schemas/spring/1.0"
xmlns:s="http://www.springframework.org/schema/beans"
xmlns="http://apacheds.org/config/1.0">

<defaultDirectoryService id="directoryService" instanceId="default"
<!-- рабочая директория, т.е. то место где будут располагаться данные Directory-->
workingDirectory="idirectory"

allowAnonymousAccess="true"
accessControlEnabled="false"
denormalizeOpAttrsEnabled="false">
<systemPartition>
<!-- use the following partitionConfiguration to override defaults for -->
<!-- the system partition -->
<jdbmPartition id="system" cacheSize="100" suffix="ou=system" optimizerEnabled="true" syncOnWrite="true">
<indexedAttributes>
<jdbmIndex attributeId="1.3.6.1.4.1.18060.0.4.1.2.1" cacheSize="100"/>
<jdbmIndex attributeId="1.3.6.1.4.1.18060.0.4.1.2.2" cacheSize="100"/>
<jdbmIndex attributeId="1.3.6.1.4.1.18060.0.4.1.2.3" cacheSize="100"/>
<jdbmIndex attributeId="1.3.6.1.4.1.18060.0.4.1.2.4" cacheSize="100"/>
<jdbmIndex attributeId="1.3.6.1.4.1.18060.0.4.1.2.5" cacheSize="10"/>
<jdbmIndex attributeId="1.3.6.1.4.1.18060.0.4.1.2.6" cacheSize="10"/>
<jdbmIndex attributeId="1.3.6.1.4.1.18060.0.4.1.2.7" cacheSize="10"/>
<jdbmIndex attributeId="ou" cacheSize="100"/>
<jdbmIndex attributeId="uid" cacheSize="100"/>
<jdbmIndex attributeId="objectClass" cacheSize="100"/>
</indexedAttributes>
</jdbmPartition>
</systemPartition>

<partitions>
<!-- NOTE: when specifying new partitions you need not include those -->
<!-- attributes below with OID's which are the system indices, if left -->
<!-- out they will be automatically configured for you with defaults. -->
<!--(DC=IDIRECTORY ― доменное имя - верхний уровень directory)-->
<jdbmPartition id="idirectory" cacheSize="100" suffix="dc=idirectory" optimizerEnabled="true"
syncOnWrite="true">
<indexedAttributes>
<jdbmIndex attributeId="1.3.6.1.4.1.18060.0.4.1.2.1" cacheSize="100"/>
<jdbmIndex attributeId="1.3.6.1.4.1.18060.0.4.1.2.2" cacheSize="100"/>
<jdbmIndex attributeId="1.3.6.1.4.1.18060.0.4.1.2.3" cacheSize="100"/>
<jdbmIndex attributeId="1.3.6.1.4.1.18060.0.4.1.2.4" cacheSize="100"/>
<jdbmIndex attributeId="1.3.6.1.4.1.18060.0.4.1.2.5" cacheSize="10"/>
<jdbmIndex attributeId="1.3.6.1.4.1.18060.0.4.1.2.6" cacheSize="10"/>
<jdbmIndex attributeId="1.3.6.1.4.1.18060.0.4.1.2.7" cacheSize="10"/>
<jdbmIndex attributeId="dc" cacheSize="100"/>
<jdbmIndex attributeId="ou" cacheSize="100"/>
<jdbmIndex attributeId="krb5PrincipalName" cacheSize="100"/>
<jdbmIndex attributeId="uid" cacheSize="100"/>
<jdbmIndex attributeId="objectClass" cacheSize="100"/>
</indexedAttributes>
</jdbmPartition>
</partitions>

<interceptors>
<normalizationInterceptor/>
<authenticationInterceptor/>
<aciAuthorizationInterceptor/>
<defaultAuthorizationInterceptor/>
<exceptionInterceptor/>
<operationalAttributeInterceptor/>

<!-- Uncomment to enable the password policy interceptor
<passwordPolicyInterceptor/>
<keyDerivationInterceptor/>
-->

<schemaInterceptor/>
<subentryInterceptor/>
<collectiveAttributeInterceptor/>
<eventInterceptor/>
<triggerInterceptor/>

<!-- Uncomment to enable replication interceptor
<replicationInterceptor>
<configuration>
<replicationConfiguration serverPort="10390" peerReplicas="instance_b@localhost:10392">
<replicaId>
<replicaId id="instance_a"/>
</replicaId>
</replicationConfiguration>
</configuration>
</replicationInterceptor>
-->
</interceptors>
</defaultDirectoryService>

<standardThreadPool id="standardThreadPool" maxThreads="8"/>
<datagramAcceptor id="datagramAcceptor" logicExecutor="#standardThreadPool"/>
<socketAcceptor id="socketAcceptor" logicExecutor="#standardThreadPool"/>

<!-- missing atou=users,dc=example,dc=com
<changePasswordServer ipPort="60464">
<directoryService>#directoryService</directoryService>
<datagramAcceptor>#datagramAcceptor</datagramAcceptor>
<socketAcceptor>#socketAcceptor</socketAcceptor>
</changePasswordServer>
-->
<!-- missing atou=users,dc=example,dc=com
<kdcServer ipPort="60088">
<directoryService>#directoryService</directoryService>
<datagramAcceptor>#datagramAcceptor</datagramAcceptor>
<socketAcceptor>#socketAcceptor</socketAcceptor>
</kdcServer>
-->
<ntpServer ipPort="60123">
<datagramAcceptor>#datagramAcceptor</datagramAcceptor>
<socketAcceptor>#socketAcceptor</socketAcceptor>
</ntpServer>
<!-- missing atou=users,dc=example,dc=com
<dnsServer ipPort="8053">
<directoryService>#directoryService</directoryService>
<datagramAcceptor>#datagramAcceptor</datagramAcceptor>
<socketAcceptor>#socketAcceptor</socketAcceptor>
</dnsServer>
-->

<ldapService id="ldapsService"
enabled="true"
ipPort="10636"
enableLdaps="true">
<directoryService>#directoryService</directoryService>
<socketAcceptor>#socketAcceptor</socketAcceptor>
</ldapService>


<ldapService id="ldapService"
<!--(порт на котором будет работать LDAPserver)-->
ipPort="10389"
<!--(Анонимный дотуп отключен)-->
allowAnonymousAccess="false"
<!--(Пока понятия не имею что это ― но должно быть так - разобраться!!!)-->
saslHost="ldap.idirectory"
saslPrincipal="ldap/ldap.idirectory@IDIRECTORY <mailto:ldap/ldap.idirectory@IDIRECTORY>"
(место поиска как понял пользователя LDAP Server)-->
searchBaseDn="ou=users,ou=system"

maxTimeLimit="15000"
maxSizeLimit="1000">

<directoryService>#directoryService</directoryService>
<socketAcceptor>#socketAcceptor</socketAcceptor>

<!-- The list of supported authentication mechanisms. -->
<saslMechanismHandlers>
<simpleMechanismHandler mech-name="SIMPLE"/>
<cramMd5MechanismHandler mech-name="CRAM-MD5" />
<digestMd5MechanismHandler mech-name="DIGEST-MD5" />
<gssapiMechanismHandler mech-name="GSSAPI" />
<ntlmMechanismHandler mech-name="NTLM" ntlmProviderFqcn="com.foo.Bar"/>
<ntlmMechanismHandler mech-name="GSS-SPNEGO" ntlmProviderFqcn="com.foo.Bar"/>
</saslMechanismHandlers>

<!-- The desired quality-of-protection, used by DIGEST-MD5 and GSSAPI. -->
<saslQop>
<s:value>auth</s:value>
<s:value>auth-int</s:value>
<s:value>auth-conf</s:value>
</saslQop>

<!-- The realms serviced by this SASL host, used by DIGEST-MD5 and GSSAPI. -->
<saslRealms>
<s:value>idirectory</s:value>
<s:value>apache.org</s:value>
</saslRealms>

<!-- the collection of extended operation handlers to install -->
<extendedOperationHandlers>
<startTlsHandler/>
<gracefulShutdownHandler/>
<launchDiagnosticUiHandler/>
<!-- The Stored Procedure Extended Operation is not stable yet and it may cause security risks.-->
<!--storedProcedureExtendedOperationHandler/-->
</extendedOperationHandlers>
</ldapService>


<apacheDS id="apacheDS"
synchPeriodMillis="15000"
allowAnonymousAccess="false">

<directoryService>#directoryService</directoryService>
<ldapService>#ldapService</ldapService>
<ldapsService>#ldapsService</ldapsService>
</apacheDS>

<!-- another bean I didn't convert -->
<spring:bean class="org.springframework.beans.factory.config.CustomEditorConfigurer">
<spring:property name="customEditors">
<spring:map>
<spring:entry key="javax.naming.directory.Attributes">
<spring:bean class="org.apache.directory.server.core.configuration.AttributesPropertyEditor"/>
</spring:entry>
</spring:map>
</spring:property>
</spring:bean>
</spring:beans>

Все настройка LDAP + Intalio|Server завершена!!! Далее следует перейти к созданию пользователей.
Эту статью Вы можете прочитать на новом блоге 

Настройка аутентификации Intalio. XML.

Аутентификация в Intalio настраивается как с помощью конфигурационнго файла в XML формате, так и с помощью LDAP. В Community Edition есть возможность настройки для LDAP Apache Directory.

Аутентификация на основе XML
Достаточно несложная процедура добавления, изменения или удаления пользователя, но весьма неудобная. Очевидные недостатки хранения даных о логинах и паролях заключаются в том, что что представлены на всеобщее обозрение, и при достаточном количестве прав можно узнать чужие пароли. Ну да ладно, это все лирика.

Файл с паролями, ролями, пользователями находится по адресу: [Intalio Server] \var\config\security.xml. В этот файл можно добавлять пользователей, роли. Есть правда одно но, не стоит "убивать" роли ProcessManager и ProcessAdministrator, т.к. под этими пользователями вы заходите на BPMS-console, также эти роли позволяют совершать различные операции над задеплоинными процесса (причем наверное одна из самы важных - это undeploy процесса, т.к. можно удалить и через базу но весьма неудобная процедура).

Пример security.xml:
<?xml version='1.0' encoding='UTF-8'?>
<!-- Define security realms, users and roles -->
<security>

<defaultRealm>intalio</defaultRealm>

<caseSensitive>false</caseSensitive>

<realm identifier="intalio">
<user identifier="admin">
<name>Admininistrator</name>
<email>admin@example.com</email>
<password>changeit</password>
<assignRole>ProcessAdministrator</assignRole>
<assignRole>examples\manager</assignRole>
<assignRole>examples\employee</assignRole>
</user>

<user identifier="manager">
<name>Manager</name>
<email>manager@example.com</email>
<password>changeit</password>
<assignRole>ProcessManager</assignRole>
<assignRole>examples\manager</assignRole>
<assignRole>examples\employee</assignRole>
</user>

<role identifier="ProcessAdministrator">
<description>Process Administrator</description>
<descendantRole>ProcessManager</descendantRole>
</role>

<role identifier="ProcessManager">
<description>Process Manager</description>
</role>

</realm>

<realm identifier="examples">

<user identifier="msmith">
<name>Michael Smith</name>
<email>msmith@examples.intalio.com</email>
<password>password</password>
<assignRole>employee</assignRole>
</user>

<user identifier="ewilliams">
<name>Emily Williams</name>
<email>ewilliams@examples.intalio.com</email>
<password>password</password>
<assignRole>manager</assignRole>
</user>

<role identifier="manager">
<description>Manager</description>
<descendantRole>employee</descendantRole>
</role>

<role identifier="employee">
<description>Employee</description>
</role>

</realm>

</security>
Рассмотрим например пользователя msmith, он имеет роль employee пароль password, e-mail. Фактически, для того, чтобы зайти в UI-FW пользователь будет ввести
Login: examples\msmith
Password: password
Далее, думаю не сложно будет разобраться в структуре данного файла.

Эту статью Вы можете прочитать на новом блоге

Установка Intalio|Desinger и Intalio|Server

Для установки Intalio|Designer и Intalio|Server их необходимо скачать с официального сайта Intalio и зарегистрироваться у них на сайте.

Установка Intalio|Server
В поставке Community Edition есть 2 варианта установки Intalio|Server, один из них - под Windows, другой - под Linux. Рассмотрим оба варианта установки

Установка под Windows
1. Требуется скачать JDK версии не ниже jdk-6u7-windows-i586-p, а затем установить его.
2. Распаковать архив Intalio|Server.
3. Установить переменные среды: INTALIO_HOME, JAVA_HOME, JRE_HOME
Пример Установки переменных среды:4. Вот в принципе и вся установка, теперь остается только запустить Intalio|Server: [Intalio Server]\bin\startup.bat

Установка под Linux
1. Должен быть установлен JDK версии не ниже: jdk-6u7-windows-i586-p.
2. Распаковываем сервер.
3. Добавляем переменные среды JAVA_HOME, JRE_HOME в файлы [Intalio Server]\bin\startup.sh, [Intalio Server]\bin\shutdown.sh, в версии 6.хх добавляем также в файл [Intalio Server]\bin\catalina.sh
Пример:
export JAVA_HOME=/usr/java/jdk1.6.0_11
export JRE_HOME=/usr/java/jdk1.6.0_11/jre
4. Затем просто стартуем сервер: [Intalio Server]\bin\startup.sh

Останов Application Server (Geronimo или Tomcat):
[Intalio Server]\bin\shutdown.sh
Login: System
Password: Manager
Если Application Server - Tomcat, то пароль с логином не потребуются для остонова сервера.

Установка Intalio|Designer
После того, как скачали достаточно просто запустить инсталяцию Intalio|Designer. Проблем ни каких возникнуть не должно.
При первой загрузке Intalio|Designer запросит логин и пароль, без них он все-таки загрузится но не дасть деплоить процессы. Пароль и логин создаются при регистрации на их оффициальном сайте.

Эту статью Вы можете прочитать на новом блоге 

среда, 12 августа 2009 г.

Немного про Intalio

Intalio - Open Source продукт для моделирования бизнес-процессов. Есть две версии данного продукта - одна Community Edition (бесплатная версия), другая Enterprise Edition (платная, но более полная версия, включающая достаточно мощный функционал).

Состав Intalio|BPM Community Edition:
1. Intalio|Designer - построенный на основе Eclipse BPMN Modeller
2. Intalio|Server - включает в себя движок Apache ODE BPEL

На сегодняшний день стандарты BPMN и BPEL являются наиболее широко используемыми стандартами.

Моделирования Бизнес-процесса (BPMN)
BPMN обеспечивает стандартизированный способ описать бизнес-процесс. Intalio|BPM использует BPMN для моделировани бизнес-процессов в том числе и использования в процессах WEB сервисов и пользовательских форм.

Язык Выполнения Бизнес-процесса (BPEL)
Intalio работает с BPEL, который автоматически генерируется при создании либо изменении бизнес процесса. Также Intalio является Zero-Code продуктом, т.е. не требуется ручного написания кода (небольшое исключение это Mapper в Intalio|Designer, но об этом позже), код генерируетс самостоятельно.

Application Server
Как ни странно, но версия Intalio Commuity Edition 5.хх и более ранниие версии работали на Geronimo, а после выхода 6.хх версии в качестве Application Server используется Tomcat, который в предыдущих версиях был доступен только с Enterprise Edition.

Официальный сайт Intalio: www.intalio.com 

Эту статью Вы можете прочитать на новом блоге