Конфигурация

Настройка HTTPS

Для авторизации настольных приложений на сервере должен быть включен HTTPS. Ниже приведены простые инструкции по настройке HTTPS в вашей среде разработки.

Создание доверенного сертификата

Доверенные сертификаты можно получить у провайдеров SSL-сертификатов или сгенерировать с помощью certbot. Но для целей разработки можно выпустить собственный корневой сертификат и подписать им сертификат сервера разработки. Для упрощения этой задачи мы рекомендуем использовать инструмент mkcert.

  1. Установите mkcert, следуя инструкциям в его репозитории: https://github.com/FiloSottile/mkcert.

  2. Сгенерируйте и установите корневой сертификат:

    mkcert -install
  3. Создайте сертификат для localhost:

    mkcert -pkcs12 localhost 127.0.0.1 ::1

    В текущей папке появится файл localhost+2.p12.

  4. Создайте файл хранилища ключей (keystore) с сертификатом для вашего проекта:

    keytool -importkeystore -srckeystore localhost+2.p12 -srcstoretype pkcs12 -destkeystore localhost.jks

    В качестве пароля исходного хранилища ключей введите changeit.

    В текущей папке появится файл localhost.jks.

Настройка сервера

В этом разделе описано, как использовать сертификат, сгенерированный в предыдущем разделе, в вашем приложении, когда оно запускается из IDE или как исполняемый JAR.

  1. Создайте директорию src/main/resources/<base-package>/keystore и скопируйте в нее localhost.jks.

  2. Задайте следующие свойства в файле 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
  3. Откройте главный класс приложения и измените метод 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.