Другие настройки
TextureProvider
TextureProvider нужен при отсутствии поддержки скинов со стороны AuthCoreProvider. Выберите один из вариантов TextureProvider:
- Поддерживаются следующие placeholder:
- %username% имя пользователя
- %uuid% UUID пользователя
- %hash% UUID пользователя без разделителей
Метод Request
"textureProvider": {
"skinURL": "http://example.com/skins/%username%.png",
"cloakURL": "http://example.com/cloaks/%username%.png",
"type": "request"
},
Прямое получение скина
- Если скины хранятся не на этой машине
- Выполняется дополнительный запрос в ЛаунчСервере на подсчёт хеш суммы и передаче её в AuthLib
"textureProvider": {
"skinURL": "http://example.com/skins/%username%.png",
"cloakURL": "http://example.com/cloaks/%username%.png",
"skinLocalPath": "/var/www/site/skins/%username%.png",
"cloakLocalPath": "/var/www/site/cloaks/%username%.png",
"type": "request"
},
Получение скина с локальным путём
- Быстрее обработка хеш суммы
- ЛаунчСерверу не нужно выполнять дополнительный запрос, так как файл считывается локально
Метод JSON
"textureProvider": {
"url": "http://example.com/getskin.php?username=%username%",
"type": "json"
},
Запрос к сайту для получения URL'ов скина/плаща и их метаданных
- Может обрабатывать slim (тонкие) скины
Комьюнити реализации:
Пример ответа:
{
"SKIN": {
"url": "http://example.com/skins/Gravita.png",
"digest": "BASE64 ENCODED MD5 HASH",
"metadata": {
"model": "slim"
}
},
"CAPE": {
"url": "http://example.com/cloaks/Gravita.png",
"digest": "BASE64 ENCODED MD5 HASH"
}
}
Сведения, при написании своего скрипта:
- digest - должен содержать бинарный md5 хеш файла, преобразованный в base64
- реализация в PHP: strtr(base64_encode(md5($string, true)), '+/', '-_')
Метод Void
"textureProvider": {
"type": "void"
},
Скины и плащи не передаются
- Если у вас другое решение по передаче скинов, либо если вам скины и плащи не нужны
- Сервер может сам устанавливать скины, к примеру при использовании плагина SkinsRestorer
Подпись Лаунчера
Лаунчер (как JAR, так и EXE) может быть подписан. JAR версия Лаунчера подписана всегда и отключить это нельзя. По умолчанию сертификат генерируется при build
из текущей даты, ключей ЛаунчСервера и названия проекта.
Генерация с помощью XCA
- Скачайте последнюю версию XCA (Windows) с официального сайта, установите и запустите. Если у вас Linux - то установите пакет
xca
с помощью вашего менеджера пакетов - Создайте новую базу данных с помощью
File -> New DataBase
и защитите её паролем. - Создадим корневой СА. Перейдите в раздел
Certificates
и нажмитеNew Certificate
. В разделеSubject
заполните полеCommon Name
(напримерBeautifulCraft Root CA
), остальные поля по желанию. НажмитеGenerate a new key
и выберите типRSA
размером 2048 или 4096. - В разделе
Extensions
укажитеType
-Certification Authority
. Укажите срок действия сертификата по вашему усмотрению. Не рекомендуется устанавливать срок действия меньше 1 года и больше 50 лет. Для применения срока нужно нажать кнопкуApply
- В разделе
Key Usage
установитеCertificate Sign
иCRL Sign
. - По желанию вы можете создать промежуточные СА. Действия аналогичны созданию корневого СА, но в разделе
Source
нужно выбрать родительский(предыдущий) СА. - Создадим конечный CodeSign сертификат. В разделе
Source
мы должны выбрать родительский(предыдущий) СА. Настройка разделаSubject
полностью аналогична. В разделеExtensions
укажитеType
-End Entity
. Укажите срок действия по усмотрению. В разделеKey Usage
установитеDigital Signature
а в соседнем спискеCode Signing
иMicrosoft Individual Code Signing
. - Экспортируем CodeSign сертификат. Для этого нужно выбрать конечный CodeSign сертификат и нажать кнопку
Export
. Выбираем тип экспортаPKCS#12 chain
. Задаем пароль и сохраняем в удобное место. - Экспортируем корневой сертификат. Для этого нужно выбрать корневой и нажать кнопку
Export
. Выбираем тип экспортаPEM
. Сохраняем в удобное место. - Мы получили два файла. Файл типа
.pfx
/.p12
нужно указать в секцииsign
ЛаунчСервера вместе со всеми данными. Файл типа.crt
нужно скопировать в папкуtruststore
ЛаунчСервера.
Получение алиаса из файла .p12/.pfx
Для получения алиаса (поле keyAlias
) нам понадобится утилита keytool
из состава JDK. Выполните эту команду:
keytool -storepass PASSWORD -keystore PATH_TO_PFX_OR_P12 -list
Вы получите следующий вывод:
Your keystore contains 1 entry
beautiful codesign, Jan 16, 2023, PrivateKeyEntry,
Строка beautiful codesign
будет искомым алиасом
Настройка секции sign для .p12/.pfx
Пример настройки:
"sign": {
"enabled": true,
"keyStore": "PATH_TO_PFX_OR_P12",
"keyStoreType": "PKCS12",
"keyStorePass": "PASSWORD",
"keyAlias": "KEY ALIAS",
"keyPass": "PASSWORD",
"metaInfKeyName": "SIGNUMO.RSA",
"metaInfSfName": "SIGNUMO.SF",
"signAlgo": "SHA256WITHRSA"
},
Обратите внимание
Пароли keyStorePass
и keyPass
должны совпадать