Pages

Subscribe:

Ads 468x60px

Labels

2015年9月17日 星期四

FreeNAS - Windows Active Directory Integration

Introducing Single Sign on and Active Directory Integration

LDAP and Active Directory user examples

資料來源
The examples described here has been shared by OpenKM users and should be taken with care.

Jboss LDAP example 1

LDAP Structure
dc=fr
   dc=soc
      ou=groups
         cn=UserRole, objectClass=posixGroup, memberUid = jack, memberUid = joe
         cn=AdminRole, objectClass=posixGroup, memberUid = jack
      ou=people
         ou=intern
            cn = jack, objectClass=inetOrgperson, uid = jack
            cn = joe, objectClass=inetOrgperson, uid = joe
Configuration parameters
principal.adapter=com.openkm.principal.LdapPrincipalAdapter
principal.database.filter.inactive.users=true
principal.ldap.mail.attribute=mail
principal.ldap.mail.search.base=ou=intern,ou=users,dc=soc,dc=fr
principal.ldap.mail.search.filter=(&(objectClass=inetOrgPerson)(cn={0}))
principal.ldap.referral=follow
principal.ldap.role.attribute=cn
principal.ldap.role.search.base=ou=groups,dc=soc,dc=fr
principal.ldap.role.search.filter=(objectClass=posixGroup)
principal.ldap.roles.by.user.attribute=cn
principal.ldap.roles.by.user.search.base=ou=groups,dc=soc,dc=fr
principal.ldap.roles.by.user.search.filter=(memberUid={0})
principal.ldap.security.credentials?xxxxxx
principal.ldap.security.principal=cn=admin,dc=soc,dc=fr
principal.ldap.server=ldap://192.168.xxx.xxx:389
principal.ldap.user.attribute=cn
principal.ldap.user.search.base=ou=intern,ou=users,dc=soc,dc=fr
principal.ldap.user.search.filter=(objectClass=inetOrgPerson)
principal.ldap.users.by.role.attribute=memberUid
principal.ldap.users.by.role.search.base=ou=groups,dc=soc,dc=fr
principal.ldap.users.by.role.search.filter=(&(objectClass=posixGroup)(cn={0}))
system.login.lowercase=true
login-config.xml
 name="OpenKM">
   >
       code="org.jboss.security.auth.spi.LdapExtLoginModule" flag="required" >
          name="java.naming.provider.url">ldap://192.168.xxx.xxx:389
> name="java.naming.security.authentication">simple> name="bindDN">cn=admin,dc=soc,dc=fr> name="bindCredential">******> name="baseCtxDN">ou=intern,ou=users,dc=soc,dc=fr> name="baseFilter">(uid={0})> name="rolesCtxDN">ou=groups,dc=soc,dc=fr> name="roleFilter">(memberUid={0})> name="roleAttributeID">cn> name="roleAttributeIsDN">false> name="roleRecursion">-1> name="searchScope">SUBTREE_SCOPE> name="allowEmptyPasswords">false> > > >

中國IT實驗室


http://itlab.idcquan.com/

中國IT實驗室

Jbpm3.0在JBoss上的安装、部署及迁移

資料來源

由于国内对JBPM的研究较少,我们在研究该工作流研究后特把本手册公布出来,希望对大家有所帮助,手册由陆义平整理主要包括如下几点:
   1.  如何在一个干净的JBoss服务器上安装Jbpm3.0
   2.  如何将原Jbpm3.0缺省的数据库从HyperSonic改为MySql
   3.  如何发布流程包到mysql数据库,
   4.  如何部署原Jbpm3.0自带的Web应用例子。

1        安装之前的准备工作

1.1           JBoss 4.0.2

Jbpm3.0压缩包中预先配置好工作流引擎的JBoss应用服务器的版本为4.0.2,因此我们先安装好一个干净的JBoss 4.0.2(可从http://www.jboss.com/products/jbossas/downloads下载),假定我们安装在D:/dev/java/jboss-4.0.2(我们定义此目录为#{jboss.home},后同)JBoss自带了3种配置的服务器,我们可以在#{jboss.home}/server目录下面发现3个目录:minimal, default, all. 我们的jbmp server configuration将参考default server configuation模板而建立。

1.2           Mysql

在本手册中我们用到的Mysql版本是4.1.13。(可从http://www.mysql.com获得)

1.3           jbpm3.0压缩包

完整的jbpm3.0压缩包jbpm-starters-kit-with-eclipse-3.0.zip可从http://www.jboss.com/products/jbpm/downloads获得。

2        新建jbpm配置

2.1

#{jboss.home}/server目录下新建一个目录jbpm,将default目录下所有文件和目录copyjbpm下。

2.2

删除jbpm/deploy目录下的以下目录和文件(去掉不必要的模块,加快jbpm启动和运行速度):
/jboss-aop.deployer
/jboss-ws4ee.sar
/management
bsh-deployer.xml
hsqldb-ds.xml
jboss-ha-local-jdbc.rar
jboss-ha-xa-jdbc.rar
monitoring-serve.xml
properties-service.xml
schedule-manager-service.xml
scheduler-service.xml
uuid-key-generator.sar

2.3

删除jbpm/deploy/jms目录下的以下文件:
hqldb-jdbc2-server.xml
hsqldb-jdbc-state-service.xml
jbossmq-destinations-service.xml
同时将下面两个文件copyjms目录下(右键复制后粘贴到jms目录下):

3        创建jbpm数据库

上面我们配置好了一个jbpm server configuration,下面我们将要为jbpm server configuration创建一个mysql数据库来存放jbpm系统表,同时将jboss下的jbpm server configuration所引用的数据源指向我们创建的mysql数据库。执行下列步骤前保证mysql已经启动。
      

3.1           新建一个数据库

打开mysql的命令行客户端,创建一个数据库名为jbpm3
CREATE DATABASE jbpm3;
USE jbpm3;

3.2           创建jbpm系统表

jbpm完整压缩包的jbpm-db/build/mysql/scripts目录下我们可以找到4sql脚本文件,执行其中的mysql.create.sql,这样我们就创建了jbpm所需要的系统表。

3.3           创建Web例子用户

创建web应用例子中所需要的4个用户
INSERT INTO JBPM_ID_USER VALUES(1,'U','cookie monster','cookie.monster@sesamestreet.tv','crunchcrunch');
INSERT INTO JBPM_ID_USER VALUES(2,'U','ernie','ernie@sesamestreet.tv','canthereyoubert,theresabananainmyear');
INSERT INTO JBPM_ID_USER VALUES(3,'U','bert','bert@sesamestreet.tv','ernie,theresabananainyourear');
INSERT INTO JBPM_ID_USER VALUES(4,'U','grover','grover@sesamestreet.tv','mayday mayday');

3.4           deploy Mysql数据源

下面我们将HyperSonic数据源替换成Mysql数据源
首先将mysqljdbc驱动程序(文件名为mysql-connector-java-3.1.7-bin.jar,可以在jbpm3.0的完整压缩包的jbpm-db/mysql/lib目录下找到)copy#{jboss.home}/server/jbpm/lib目录下,
然后将下面的文件copy#{jboss.hom}/server/jbpm/deploy目录下,请注意修改该xml文件中的数据库用户名和口令
这样我们就将原来JBoss所指向的HyperSonic数据源替换成Mysql的数据源了。

4        部署jbpm服务包

#{jboss.home}/server/jbpm/deploy目录下新建jbpm.sar目录,将下面的sar文件(标准zip格式)展开在jbpm.sar目录下
展开后的目录结构如下图所示

5        Recompile&depploy jbpm相关文件

下面我们将重新编译和发布jbpm例程相关包,主要涉及到以下几个模块:
l         Websale流程包(websale.par)。
l         Websale应用例子(jbpm.war)。

5.1           新建一个java project

5.1.1 eclipse中新建一个java project,命名为myjbpm
5.1.2 将下列两个目录copysrc目录下
位于jbpm压缩包/jbpm/src/java.webapp下的org目录
位于jbpm压缩包/jbpm/src/java.examples/org/jbpm下的websale目录(请删除WebsaleTest.java文件!
5.1.3 myjbpm下新建一个目录lib,将下列jar文件copylib目录下:
antlr-2.7.5H3.jar
asm.jar
bsh-2.0b2.jar
cglib-2.1.jar
commons-collections-2.1.1.jar
commons-logging.jar
dom4j.jar
ehcache-1.1.jar
hibernate3.jar
javax.servlet.jar
javax.servlet.jsp.jar
jbpm-3.0.jar
jbpm-identity-3.0.jar
jta.jar
mysql-connector-java-3.1.7-bin.jar
lib目录下新建一个目录jsf,将下列jar文件copyjsf目录下:
commons-beanutils-1.6.1.jar
commons-digester-1.5.jar
jstl-1.1.0.jar
myfaces-1.0.9.jar
myfaces-impl-1.0.9.jar
myfaces-jsf-api-1.0.9.jar
standard-1.1.2.jar

5.1.4 myjbpm下新建一个目录resources,将下列目录copy到其下
位于jbpm压缩包/jbpm/src/resources下的jbpm.war目录
位于jbpm压缩包/jbpm/src/process.examples下的websale.par目录

5.1.5 copy以下文件到myjbpm目录下
请注意更改build.xmldeploy.dir的属性以及hibernate.cfg.xml中数据库的用户名和口令,打开build.xml文件并执行deploy.processdeploy.war两个目标对象。
执行完成后,我们就将websale流程包和webapp应用例程部署完毕了

6        运行jbpm server configuration

在命令行模式切换到#{jboss.home}/bin目录下,运行下列命令
run –c jbpm
jboss启动成功后即可按照原来的模式运行web例程。

7        调试web应用例程

如果想debug刚才部署的web应用例程,可以按照以下步骤操作:

7.1 安装JBoss-IDE plug-in for Eclipse

Jboss-IDE plug-in可以从http://www.jboss.com/products/jbosside/downloads下载


7.2 配置project debug环境