null

Миграция на Liferay 6.1 и проблемы с неавторизованным доступом к файлам

Миграция на новую версию ПО - регулярная и, во многих случаях, достаточно неприятная задача. Если вы используете Liferay достаточно давно (как минимум, с пятой версии), и, наконец, решились смигрировать на последнюю на данный момент версию портала, то вы практически наверняка столкнётесь с рядом проблем, которым посвящена эта и, скорее всего, будут посвящены несколько следующих моих заметок.

Предпосылки

  • Во-первых, вы используете Liferay 6.0, на который вы когда-то смигрировали с пятой версии портала.
  • Во-вторых, вы не меняли алгоритм проверки разрешений (permission check algorithm, задаётся в portal-ext.properties) с версии 5 на версию 6. Проверить это можно так:
    user@host # cat portal-ext.properties | grep permissions.user.check
    permissions.user.check.algorithm=5
    Если алгоритм = 6, то всё OK - можно спокойно мигрировать. Если 5, то возможны проблемы - в этом случае вам поможет хинт из этой заметки.
  • В третьих, вы собираетесь модернизировать портал до последней на данный момент CE-версии - 6.1.1.

Симптомы

Если вы смигрируете, оставив старый алгоритм проверки разрешений, то после апгрейда до Liferay 6.1 у вас на портале "исчезнут" все картинки:

Все картинки исчезли

При этом, если залогиниться админом, то картинки снова начнут отображаться. Если посмотреть чуть повнимательнее, то можно даже понять причину проблемы - сбросились все права на просмотр файлов для неавторизованных пользователей:

Не хватает прав доступа

Решение

По этому поводу в багтрекере Liferay зарегистрирован соответствующий баг. Разработчики, конечно, его исправили, но обновление выкатили только для коммерческой EE-версии. В связи с этим, у нас остаётся два варианта:

Первый - собрать транковую версию из исходников. Существенный недостаток - текущая ревизия в репозитории может оказаться нестабильной.

Второй - как рекомендуют мудрые люди в багтрекере, проапгрейдить разрешения до версии 6 ещё на старой версии портала (6.0). Для этого, на старом портале, ещё до миграции, нужно открыть пункт "Администрирование сервера" в панели управления, выбрать вкладку "Миграция данных" и кликнуть по кнопке "Конвертировать устаревшие алгоритмы прав доступа":

Кликаем по кнопке

После этого надо будет дождаться завершения апгрейда (в логах появится сообщение об этом), рестартануть портал и проверить, ничего ли не поломалось. Если всё в порядке, то можно спокойно мигрировать на 6.1 - картинки (и другие файлы) больше не пропадут:

Теперь картинки смигрировали нормально

Коротко о себе:

Работаю ведущим программистом в компании Tune IT и ассистентом кафедры Вычислительной техники в Университете ИТМО .

Занимаюсь проектами, связанными с разработкой разного рода веб-приложений (порталы, CRM-системы, системы электронного документооборота), а также, в рамках научной работы на кафедре, изучаю возможности применения семантического анализа в задачах САПР.