workspace.xml文件;该文件将根据数据库的初始配置自动生成;<PersistenceManagercl;<paramname="sche;7特殊的OpenKM配置参数;7.1签入时,不校对文件名;system.document.name.mis;设为默认签入文档不做文
下载:OpenKM高级配置_GPL23.Doc
<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.imagemagic.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 ProxyPassReverse 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