Установка и активация Atlassian Confluence 6.3.4
Oct 16, 2017 08:36 · 442 words · 3 minute read
Ранее мы уже рассматривали как устроен механизм защиты в JIRA Software, сегодня немного покопаемся еще в одном полезном инструменте — Atlassian Confluence 6.3.4.
ВНИМАНИЕ! Информация в статье доступна только в образовательных целях, НЕ ИСПОЛЬЗУЙТЕ ее для получения несанкционированного доступа к рассматриваемому ПО!
Для «лицензирования» Atlassian Confluence 6.3.4 необходимо внести изменения в два файла (приведены актуальные версии файлов на момент установки): atlassian-extras-decoder-v2-3.2.jar
и atlassian-universal-plugin-manager-plugin-2.22.5.jar
.
В стандартной установке на Linux файлы находятся в каталогах /opt/atlassian/confluence/confluence/WEB-INF/lib/
и /opt/atlassian/confluence/confluence/WEB-INF/atlassian-bundled-plugins/
соответственно.
Можно использовать уже пропатченный для Jira Software 7.5.0 atlassian-universal-plugin-manager-plugin-2.22.5.jar
или приготовить его «с нуля» — см. здесь.
В данной статье рассмотрим только патч файла atlassian-extras-decoder-v2-3.2.jar
.
- скачиваем на локальный компьютер файлы
atlassian-extras-common-3.2.jar
,atlassian-extras-decoder-api-3.2.jar
,atlassian-extras-api-3.2.jar
иatlassian-extras-decoder-v2-3.2.jar
из каталога/opt/atlassian/confluence/confluence/WEB-INF/lib/
- устанавливаем инструмент JD-GUI;
- открываем
atlassian-extras-decoder-v2-3.2.jar
с помощью декомпилятора JD-GUI; - жмем “File -> Save All Sources” или Ctrl+Alt+S (сохранится архив
atlassian-extras-decoder-v2-3.2.jar.src.zip
); - распаковываем полученный архив с помощью архиватора;
- в
atlassian-extras-decoder-v2-3.2.jar.src/com/atlassian/extras/decoder/v2/Version2LicenseDecoder.java
находим методloadLicenseConfiguration
(в моем случае выглядел так):
/* */ private Properties loadLicenseConfiguration(Reader text)
/* */ {
/* */ try
/* */ {
/* 218 */ Properties props = new Properties();
/* 219 */ new DefaultPropertiesPersister().load(props, text);
/* 220 */ return props;
/* */ }
/* */ catch (IOException e)
/* */ {
/* 224 */ throw new LicenseException("Could NOT load properties from reader", e);
/* */ }
/* */ }
и добавляем в данный метод информацию о лицензии:
/* */ private Properties loadLicenseConfiguration(Reader text)
/* */ {
/* */ try
/* */ {
/* 218 */ Properties props = new Properties();
/* 219 */ new DefaultPropertiesPersister().load(props, text);
props.setProperty("LicenseExpiryDate", "2099-01-01");
props.setProperty("MaintenanceExpiryDate", "2099-01-01");
props.setProperty("Evaluation", "false");
props.setProperty("NumberOfUsers", "-1");
props.setProperty("Organisation", "MyCorp");
props.setProperty("PurchaseDate", "2017-01-01");
props.setProperty("SEN", "SEN-L10493078");
/* 220 */ return props;
/* */ }
/* */ catch (IOException e)
/* */ {
/* 224 */ throw new LicenseException("Could NOT load properties from reader", e);
/* */ }
/* */ }
- сохраняем файл;
- копируем файлы
atlassian-extras-common-3.2.jar
,atlassian-extras-decoder-api-3.2.jar
,atlassian-extras-api-3.2.jar
иcommons-codec-1.9.jar
в директорию с исходниками (atlassian-extras-decoder-v2-3.2.jar.src
); - переходим в каталог с исходниками (
atlassian-extras-3.2.jar.src
) и компилируем класс из java-файла, который мы правили с помощью следующей команды:
javac -cp commons-codec-1.9.jar:atlassian-extras-common-3.2.jar:atlassian-extras-decoder-api-3.2.jar:atlassian-extras-api-3.2.jar -sourcepath ./ com/atlassian/extras/decoder/v2/Version2LicenseDecoder.java
- могут быть ошибки (вызваны “кривостью” декомпиляции исходников), устраняем их и еще раз компилируем класс;
- после успешного выполнения в каталоге
com/atlassian/extras/decoder/v2/
появится файлVersion2LicenseDecoder.class
- полученныей файл копируем с заменой (по такому же пути
com/atlassian/extras/decoder/v2/
) в архивatlassian-extras-decoder-v2-3.2.jar
(проще всего это сделать черезmc
— Midnight Commander); - в общем случае “новый” архив
atlassian-extras-decoder-v2-3.2.jar
необходимо положить (с заменой) на сервере с Confluence в каталог/opt/atlassian/confluence/confluence/WEB-INF/lib/
, удалить содержимое каталогов${CONFLUENCE_HOME}/plugins-osgi-cache/transformed-plugins/
и${CONFLUENCE_HOME}/plugins-osgi-cache/felix/
после чего перезапустить confluence. Если вы запускаете Atlassian Confluence 6.3.4 в docker-контейнере, то нужно пересобрать docker-образ согласно инструкциям в Dockerfile
Инструкции по сборке docker-образа (Dockerfile) выглядят так:
FROM cptactionhank/atlassian-confluence:6.3.4
COPY atlassian-extras-decoder-v2-3.2.jar ${CONF_INSTALL}/confluence/WEB-INF/lib/atlassian-extras-decoder-v2-3.2.jar
COPY atlassian-universal-plugin-manager-plugin-2.22.5.jar ${CONF_INSTALL}/confluence/WEB-INF/atlassian-bundled-plugins/atlassian-universal-plugin-manager-plugin-2.22.5.jar
CMD ["/opt/atlassian/confluence/bin/start-confluence.sh", "-fg"]