workspace.xml文件;该文件将根据数据库的初始配置自动生成;<PersistenceManagercl;<paramname="sche;7特殊的OpenKM配置参数;7.1签入时,不校对文件名;system.document.name.mis;设为默认签入文档不做文


1 2 3 4




<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem"> <param name="path" value="${wsp.home}"/> </FileSystem> <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager"> <param name="driver" value="com.mysql.jdbc.Driver"/> <param name="url" value="jdbc:mysql://localhost:3306/okm_repo? autoReconnect=true"/> <param name="schema" value="mysql"/> <param name="user" value="openkm"/> <param name=“password” value=“okmPwd”/> <param name="schemaObjectPrefix" value="${wsp.name}_"/> <param name="externalBLOBs" value="false"/> </PersistenceManager> <!-- Search index and the file system it uses. class: FQN of class implementing the QueryHandler interface --> <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex"> <param name="path" value="${wsp.home}/index"/> <param name="textFilterClasses" value="……"/> <param name="extractorPoolSize" value="2"/> <param name="supportHighlighting" value="false"/> <param name="indexingConfiguration" value="${wsp.home}/../../../indexing_configuration.xml"/> </SearchIndex> </Workspace> <Versioning rootPath="${rep.home}/version"> <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager"> <param name="driver" value="com.mysql.jdbc.Driver"/> <param name="url" value="jdbc:mysql://localhost:3306/okm_repo? autoReconnect=true"/> <param name="schema" value="mysql"/> <param name="user" value="openkm"/> <param name=“password” value=“okmPwd”/> <param name="schemaObjectPrefix" value="version_"/> <param name="externalBLOBs" value="false"/> </PersistenceManager> </Versioning> </Repository>

6.5 修改workspace.xml文件

该文件将根据数据库的初始配置自动生成。如果涉及备份的回复以及repository迁移,则需要修改该文件。此外,也可以直接删除该文件所在的work文件夹,而不必重新修改。

<PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager"> <param name="driver" value="com.mysql.jdbc.Driver"/> <param name="url" value="jdbc:mysql://localhost:3306/okm_repo? autoReconnect=true"/> <param name="schema" value="mysql"/> <param name="user" value="openkm"/> <param name="password" value=" okmPwd"/>

<param name="schemaObjectPrefix" value="${wsp.name}_"/> <param name="externalBLOBs" value="false"/> </PersistenceManager>


7 特殊的OpenKM配置参数

7.1 签入时,不校对文件名

system.document.name.mismatch.check

设为默认签入文档不做文档名称校对。

7.2 配置中文界面

首先需要配置中文字体界面。参加系统提供的OpenKM_5.1-SNAPSHOT_zh-CN.sql文件,这实际上是个sql文件。该文件可在管理面板中增加翻译条目并允许重新导出。配置中文界面时需要指定图标。

因为中文字体默认偏小,所以可以在菜单中改为中等字体或大字体,或者直接在profile中修改字体大小。另外,在管理面板中,为如下选项配置登录时的默认界面。

default.lang

如果已经配置好中文环境,则其值为中文字体名称,比如zh-CN

7.3 配置文件预览

修改预览设置前,应当清空cache。

(1)PDF预览参数:

system.swftools.pdf2swf=C:\SWFTools\pdf2swf.exe -T 9 -f ${fileIn} -o ${fileOut}

(2)Office文档预览

启动JBoss前,不应打开OpenOffice应用。

路径下应该可以看见program目录。比如:

system.openoffice.path=C:\\Program Files\\OpenOffice.org 3(windows下注意双反斜杠)

system.openoffice.path=C:\LibreOffice 3.4

(3)DWG预览参数:

首先拷贝并注册AcmeCADConverter.exe到某个文件夹下面。

system.dwg2dxf=C:\AcmeCADConverter8.0\AcmeCADConverter.exe

(4)图像文件预览参数:

system.p_w_picpathmagic.convert=C:\ImageMagick-6.7.6-Q16\convert.exe

(5)ghostscript 预览:

system.ghostscript.ps2pdf=c:\ghostscript\gs9.05\lib\ps2pdf

(6)ocr预览

system.ocr=c:\Tesseract-ocr\tesseract.exe ${fileIn} ${fileOut}


7.4 用户对所创建文件夹的权限控制

用户创建文档或者文件夹后,默认不得到相应全部操作权限。

user.assign.document.creation=off

7.5 变更Cache路径

默认为cache.home=$JBOSS_HOME/cache。可以变更到其他硬盘或存储区。

7.6 禁用user quota

在用户profile中,停止user quota, 可以提高性能

如果需要启用:user.item.cache=on。默认为启用。

7.7 修改repository文件夹位置

该配置近在初次启动Jboss时生成。一旦已经建立repository文件夹,如果需要移动其位置,则应先修改路径,然后关闭Jboss,移动repository文件夹到新的目录下,然后重新启动JBoss。

repository.config= D:\jboss-4.2.3.GA_Test\repository.xml

repository.home= D:\jboss-4.2.3.GA_Test\repository

7.8 重做repository Indexing

停止JBoss,删除$JBOSS_HOME/repository/repository/index,然后重启JBoss。

7.9 设置默认用户组

如果需要,该用户组应可以修改为对应于AD中的OU。

default.user.role=OtherRole

default.admin.role=OtherAdminRole

8 变更登录URL

8.1 安装Apache htttp server

下载地址:http://httpd.apache.org/download.cgi ( windows binary no mod_ssl )。在Apache安装目录下,找到配置文件:Apache2.2\conf\httpd.conf,在这个文件上完成相关配置。配置完成后,需要重启Apache服务。

8.2 使用redirect配置

在如下位置增加一行重定向的语句。该方法仅止于此,在用户的客户端将会看到真实的URL。

<IfModule alias_module>

# Example:

# Redirect permanent /foo http://localhost/bar

Redirect permanent /OpenKM2 http://172.16.8.225:8180/OpenKM

ScriptAlias /cgi-bin/ "C:/Apache2.2/cgi-bin/"

</IfModule>


8.3使用virtualhost配置

需要安装apache httpd server。找到配置文件:Apache2.2\conf\httpd.conf,完成以下配置。

# 启用模块

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

# 增加配置

NameVirtualHost *:80

<VirtualHost *:80> ServerName OKM-DMS

RedirectMatch ^/$ /OpenKM

ProxyRequests Off

ProxyVia On

<Proxy *> AddDefaultCharset off

Order deny,allow

Allow from all Deny from All

</Proxy>

<Location /OpenKM>

ProxyPass ajp://127.0.0.1:8009/OpenKM ProxyPa***everse http://OKM-DMS/OpenKM

</Location>

ErrorLog logs/openkm.your-domain.com-error_log CustomLog logs/openkm.your-domain.com-access_log common

</VirtualHost>

此外,可以直接使用redirector指令。


8.4 重启Apache服务。

运行services.msc,打开服务管理窗口,重启Apache服务。然后尝试以新的URL登录。



9 OpenKM和AD的集成

首先安装Softerra LDAP Administration软件,并以合适的帐号登录,了解所在域的结构。

一般来说,域中应该存在UserRole和AdminRole两个用户组。如果域中不存在着两个用户组,那么可以考虑修改JBoss的{home}\server\default\lib\jbosssx.jar这个文件,在校验是自动添加相应用户组。

现在已经定制过jbosssx.jar中的LdapExtLoginModule文件,允许自动添加UserRole和AdminRole用户组,并配置不同的域OU同时登录。

9.1 修改login-config.xml文件:

这是定制了jbosssx.jar后的LdapExtLoginModule后的配置文件,允许从多个OU中导入用户数据。该文件位于{home}\server\default\conf文件夹中。

<application-policy name = "OpenKM">

<authentication>

<login-module code="org.jboss.security.auth.spi.LdapExtLoginModule" flag="required" >

<module-option name="java.naming.factory.initial">com.sun.jndi.ldap.LdapCtxFactory</module-option> <module-option name="java.naming.provider.url">ldap://172.16.2.5:389</module-option>

<module-option name="java.naming.security.authentication">simple</module-option>

<module-option name="bindDN">xxxEnt\mis</module-option>

<module-option name="bindCredential">xxxEnt,2009</module-option>

<module-option name="baseCtxDN">OU=xxx部,OU=XXXENT,DC=xxxEnt,DC=com</module-option > <!--module-option name="baseCtxDN">OU=XXXENT,DC=xxxEnt,DC=com</module-option -->

<module-option name="baseFilter">(sAMAccountName={0})</module-option>

<module-option name="rolesCtxDN">ou=XXXENT,DC=xxxEnt,DC=com</module-option>

<module-option name="roleFilter">(member={1})</module-option>

<module-option name="roleAttributeIsDN">true</module-option>

<!-- module-option name="roleAttributeID">cn</module-option -->

<module-option name="roleNameAttributeID">cn</module-option>

<module-option name="allowEmptyPasswords">false</module-option>

<module-option name="java.naming.referral">follow</module-option>

<module-option name="defaultRole">UserRole</module-option>

<module-option name="adminUsers">userExm,user01,user02</module-option>

</login-module>

</authentication>

</application-policy>

注:baseCtxDN可以修改为:ou=xxx部,ou=XXXENT,DC=xxxEnt,DC=com;OU=xxxx项目部,OU=XXXENT,DC=xxxEnt,DC=com

9.2 修改OpenKM.cfg

直接在管理员面板中修改。下面配置用于从域中或从数据库中抽取用户邮箱等数据。下面是是从域中抽取用户数据的参数。LdapPrincipalAdapter已经定制,允许从多个OU中导入用户数据。

principal.adapter=com.openkm.principal.LdapPrincipalAdapter

#/切换到数据库com.openkm.principal.DatabasePrincipalAdapter

principal.database.filter.inactive.users=true

principal.ldap.mail.attribute=mail

=====决定从哪个ou下搜寻用户邮箱==========

principal.ldap.mail.search.base=ou=信息档案部,ou=XXXENT,DC=xxxEnt,DC=com

principal.ldap.mail.search.filter=(&(objectclass=person)(sAMAccountName={0}))

principal.ldap.referral=follow

principal.ldap.role.attribute=cn

=====决定从那个ou下寻找用户组,此处需要确定AdminRole的所在ou=====

principal.ldap.role.search.base=ou=信息档案部,ou=XXXENT,DC=xxxEnt,DC=com

principal.ldap.role.search.filter=(objectClass=group)

principal.ldap.roles.by.user.attribute=memberOf

=====决定从哪个ou下寻找用户所在的组======

principal.ldap.roles.by.user.search.base=ou=信息档案部,ou=XXXENT,DC=xxxEnt,DC=com

principal.ldap.roles.by.user.search.filter=(&(objectclass=person)(sAMAccountName={0}))

principal.ldap.security.credentials=******

principal.ldap.security.principal=xxxEnt\userExm

principal.ldap.server=ldap://172.16.2.5:389

=====决定从那个ou下搜寻用户及用户名,此处需确定用户所在的ou========

principal.ldap.user.attribute=sAMAccountName

principal.ldap.user.search.base=ou=xxxx部,ou=XXXENT,DC=xxxEnt,DC=com

principal.ldap.user.search.filter=(objectClass=person)

principal.ldap.username.attribute=cn

principal.ldap.username.search.base=ou=xxxx部,ou=XXXENT,DC=xxxEnt,DC=com

principal.ldap.username.search.filter=(&(objectClass=person)(sAMAccountName={0}))

=====不很确定。此处似乎是设定用户组所含用户的ou。但此处用户似乎未导入数据库,但的确可以登录======== principal.ldap.users.by.role.search.base=ou=xxxx部,ou=XXXENT,DC=xxxEnt,DC=com

principal.ldap.users.by.role.search.filter=(&(objectClass=Group)(cn={0}))

principal.ldap.users.by.role.attribute=member

system.login.lowercase=true

search.base都可以修改为:ou=xxxx部,ou=XXXENT,DC=xxxEnt,DC=com;OU=xxxx2部,OU=XXXENT,DC=xxxEnt,DC=com