配置
应用程序属性
jmix.webdav.applications
设置文档格式和打开此格式的外部应用程序的映射。对于每个外部应用程序,可以在 "extensions"
属性配置一组文件扩展名。
例如,下面的映射使用 Microsoft PowerPoint 打开 PPT 和 PPTX 文件:
"ms-powerpoint":{\
"name":"Microsoft PowerPoint",\
"protocols":{"writable":"ms-powerpoint:ofe%7Cu%7C","read_only":"ms-powerpoint:ofv%7Cu%7C"},\
"extensions":["ppt","pptx"]\
}
默认值:
{"ms-word":{"name":"Microsoft Word","protocols":{"writable":"ms-word:ofe%7Cu%7C",\
"read_only":"ms-word:ofv%7Cu%7C"},"extensions":["docx","doc","rtf"]},\
"ms-excel":{"name":"Microsoft Excel","protocols":{"writable":"ms-excel:ofe%7Cu%7C",\
"read_only":"ms-excel:ofv%7Cu%7C"},"extensions":["xls","xlsx"]},\
"ms-powerpoint":{"name":"Microsoft PowerPoint",\
"protocols":{"writable":"ms-powerpoint:ofe%7Cu%7C","read_only":"ms-powerpoint:ofv%7Cu%7C"},\
"extensions":["ppt","pptx"]}}
LibreOffice 配置示例:
jmix.webdav.applications = {"vnd.libreoffice.command":\
{"name":"LibreOffice","protocols":\
{"writable":"vnd.libreoffice.command:ofe|u|",\
"read_only":"vnd.libreoffice.command:ofv|u|"},\
"extensions":["odt", "ods", "odp", "doc", "docx", "xls", "xlsx", "ppt", "pptx"]}}
jmix.webdav.authentication-method
设置认证类型。
默认值:basic
。
尽管我们不推荐,但是你仍然可以在该属性设置 digest
,避免在服务器配置 HTTPS。此时,别忘了修改 jmix.webdav.url-prefix 属性,以便使用正确的服务协议和端口生成链接。另请注意,所有用户都必须在数据库中单独存储哈希密码。当更改用户的密码时,扩展组件会更新这些密码,因此必须在设置摘要认证后为每个用户执行此操作。
jmix.webdav.auto-generate-unique-resource-uri
如果该属性设置为 false
,且新上传文档生成的 URI 已经分配给另一个文档时,会发生违反唯一性约束错误。
如果该属性设置为 true
,且 URI 已经分配给另一个文档时,会自动生成 {id}.extension
格式的新路径。
默认值:true
。
jmix.webdav.document-versions-cleaning-cron
该属性支持以 cron 表达式修改 WebdavDocumentVersionsCleaningJob 的调度计划。
默认值:0 0 0 1 * ? *
(每月一次)。
jmix.webdav.expired-lock-cleaning-cron
该属性支持以 cron 表达式修改 ExpiredLockCleaningJob 的调度计划。
默认值:0 0 0/2 ? * *
(两小时一次)。
jmix.webdav.use-default-document-versions-cleaner-quartz-configuration
该属性可以禁用创建和计划 WebdavDocumentVersionsCleaningJob 任务的默认配置。
默认值:true
。
jmix.webdav.use-default-expired-lock-cleaner-quartz-configuration
该属性可以禁用创建和计划 ExpiredLockCleaningJob 任务的默认配置。
默认值:true
。
配置 HTTPS
服务器需要使用 HTTPS 对桌面端应用程序进行认证。下面是在开发环境设置 HTTPS 的简要说明。
使用自签名的证书仅适合测试。生产环境的应用程序必须使用由信任机构颁发的 SSL 证书。 |
创建 Keystore 文件
-
使用 JDK 提供的 keytool 工具 生成 Keystore 文件:
keytool -genkey -keyalg RSA -alias localhost -keystore localhost.jks -validity 365 -keysize 2048
会要求你设置 keystore 的密码和名称。记录输入的密码和名称。
-
从 keystore 导出证书:
keytool -export -keystore localhost.jks -storepass <password> -alias localhost -file localhost.cer
使用第一步输入的密码替换
<password>
。 -
在操作系统注册并信任证书。
-
macOS:
-
在 Finder(访达)中双击
localhost.cer
文件。会自动打开 Keychain Access(钥匙串访问) 应用程序。 -
在 Certficates(证书) 标签页找到第一步输入名称下的证书。
-
双击证书,并选择 Trust(信任) → When using this certificate: Always Trust(使用此证书时:始终信任)。
-
-
服务配置
本节介绍当从 IDE 运行应用程序或者用可执行 JAR 运行时,如何使用上一节生成的证书。
-
创建
src/main/resources/<base-package>/keystore
目录,并将localhost.jks
复制到该目录。 -
在
application.properties
文件设置下列应用程序属性,用真实值替换<base-package>
和<password>
:# 启用 HTTPS server.ssl.enabled=true # keystore 的格式 server.ssl.key-store-type = JKS # 包含证书的 keystore 路径 server.ssl.key-store = classpath:<base-package>/keystore/localhost.jks # 生成 keystore 的密码 server.ssl.key-store-password = <password> # 证书的映射别名 server.ssl.key-alias = localhost # 服务端口 server.port = 8443
维护作业
WebDAV 扩展组件包含几个维护作业。如需定期执行这些作业,请在项目中 安装 Quartz 扩展组件。
ExpiredLockCleaningJob
删除过期的 锁 对象。这个任务默认每 2 小时运行一次。
如需修改任务调度,请使用 jmix.webdav.expired-lock-cleaning-cron 应用程序属性。
WebdavDocumentVersionsCleaningJob
删除没有文档链接的 WebdavDocumentVersion
实例。默认每月运行一次。
如需修改任务调度,请使用 jmix.webdav.document-versions-cleaning-cron 应用程序属性。