Конфигурация
Настройка HTTPS
Для авторизации настольных приложений на сервере должен быть включен HTTPS. Ниже приведены простые инструкции по настройке HTTPS в вашей среде разработки.
Создание доверенного сертификата
Доверенные сертификаты можно получить у провайдеров SSL-сертификатов или сгенерировать с помощью certbot. Но для целей разработки можно выпустить собственный корневой сертификат и подписать им сертификат сервера разработки. Для упрощения этой задачи мы рекомендуем использовать инструмент mkcert.
-
Установите
mkcert, следуя инструкциям в его репозитории: https://github.com/FiloSottile/mkcert. -
Сгенерируйте и установите корневой сертификат:
mkcert -install -
Создайте сертификат для localhost:
mkcert -pkcs12 localhost 127.0.0.1 ::1В текущей папке появится файл
localhost+2.p12. -
Создайте файл хранилища ключей (keystore) с сертификатом для вашего проекта:
keytool -importkeystore -srckeystore localhost+2.p12 -srcstoretype pkcs12 -destkeystore localhost.jksВ качестве пароля исходного хранилища ключей введите
changeit.В текущей папке появится файл
localhost.jks.
Настройка сервера
В этом разделе описано, как использовать сертификат, сгенерированный в предыдущем разделе, в вашем приложении, когда оно запускается из IDE или как исполняемый JAR.
-
Создайте директорию
src/main/resources/<base-package>/keystoreи скопируйте в нееlocalhost.jks. -
Задайте следующие свойства в файле
application.properties, заменив<base-package>и<password>на реальные значения:# Enables HTTPS server.ssl.enabled=true # The format used for the keystore server.ssl.key-store-type = JKS # The path to the keystore containing the certificate server.ssl.key-store = classpath:<base-package>/keystore/localhost.jks # The password used to generate the keystore server.ssl.key-store-password = <password> # The alias mapped to the certificate server.ssl.key-alias = localhost # Changes the server's port server.port = 8443Значение
<base-package>в пути к хранилищу ключей (свойствоserver.ssl.key-store) должно быть указано как путь с разделителями в виде слэшей:server.ssl.key-store = classpath:com/example/demo/keystore/localhost.jks
-
Откройте главный класс приложения и измените метод
printApplicationUrl(). После настройки HTTPS URL должен быть изменен наhttps://:import com.google.common.base.Strings; import org.slf4j.LoggerFactory; import org.springframework.boot.context.event.ApplicationStartedEvent; import org.springframework.context.event.EventListener; @EventListener public void printApplicationUrl(final ApplicationStartedEvent event) { LoggerFactory.getLogger(DemoApplication.class).info("Application started at " + "https://localhost:" + environment.getProperty("local.server.port") + Strings.nullToEmpty(environment.getProperty("server.servlet.context-path"))); }
Задачи обслуживания
Дополнение WebDAV включает несколько задач обслуживания, описанных ниже. Чтобы запускать эти задачи регулярно, добавьте в проект дополнение Quartz, как описано в разделе Quartz / Установка.
ExpiredLockCleaningJob
Эта задача удаляет просроченные объекты блокировки. По умолчанию она запускается каждые два часа.
Чтобы изменить расписание задачи, используйте свойство jmix.webdav.expired-lock-cleaning-cron.
WebdavDocumentVersionsCleaningJob
Эта задача удаляет экземпляры WebdavDocumentVersion, не связанные ни с одним документом. По умолчанию она запускается один раз в месяц.
Чтобы изменить расписание задачи, используйте свойство jmix.webdav.document-versions-cleaning-cron.
Настройка безопасности
Ограничения доступа к документам настраиваются с помощью ресурсных и ролей уровня строк.
Предопределенные роли
Приложение Jmix с дополнением WebDAV включает две предопределенные ресурсные роли по умолчанию:
-
WebDAV: minimal access — базовая роль WebDAV, необходимая всем пользователям, которым требуется функциональность WebDAV.
-
WebDAV: view document browser — предоставляет доступ к экрану документов WebDAV.