3. Работа с настольными приложениями

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

Использование LibreOffice

Установите LibreOffice и настройте свойство jmix.webdav.applications, чтобы открывать в нем все файлы:

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"]}}

Создание файла хранилища ключей

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

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

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

    mkcert -pkcs12 localhost 127.0.0.1 ::1

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

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

    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://:

    @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")));
    }

Запуск приложения

После выполнения описанных выше инструкций запустите приложение по адресу https://localhost:8443.

Выберите пункт Knowledge base в меню Application. Нажмите на ссылку документа WebDAV.

open webdav doc1

Браузер отобразит диалоговое окно с предложением открыть файл WebDAV в LibreOffice. Согласитесь открыть файл.

После того как документ WebDAV будет отредактирован и сохранен, будет создана новая версия документа, которая станет последней версией.

open webdav doc3

Итоги

Вы узнали, что:

  • Для того чтобы включить открытие и редактирование документов WebDAV в настольных офисных приложениях, необходимо настроить HTTPS для вашего веб-приложения. Это необходимо для обеспечения безопасного соединения между настольными офисными приложениями и сервером WebDAV, особенно при работе с конфиденциальными операциями редактирования и сохранения документов.

  • Шифрование HTTPS обеспечивает безопасный канал передачи данных, предотвращая несанкционированный доступ и гарантируя целостность процесса редактирования документов.