1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Утилита Готовая система скинов и авторизации Ely.by

Тема в разделе "Руководства, инструкции, утилиты", создана пользователем ErickSkrauch, 10 май 2015.

  1. Hello Eddy

    Hello Eddy Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    Hello_Eddy
    Потому, что тлаунчер в новой версии показывает рекламу серверов, я не могу управлять обновлением версиями лаунчера и пакета майнкрафта.
    Он считает хеш манифеста и каждого файла отдельно. Думаю, что это сделано не для защиты кода, а для проверки, корректно ли загружен файл.
    Есть идеи, как это можно поменять?
     
  2. Автор темы
    ErickSkrauch

    ErickSkrauch Активный участник Пользователь

    Баллы:
    68
    Имя в Minecraft:
    ErickSkrauch
    @Hello Eddy, а ты случайно не говоришь про TLauncher 2.0? Дело в том, что это паразит, прогрессирующий на имени оригинального TLauncher и в нём действительно довольно много лишней рекламы. Настоящий TLauncher можно загрузить с Ely.by, либо из официальной группы.

    Касательно же измывания над официальным лаунчером, то, как я говорил, скорее всего желаемого можно добиться, найдя оригинальную SHA-256 хэш сумму и подменив её на свою, после модификации клиента. Думаю, силами того же InClassTranslator можно управиться.
     
  3. Hello Eddy

    Hello Eddy Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    Hello_Eddy
    Нашел способ обойти сверку по манифесту (пересобирать пакет).
    С сервером mojang это работает, но с ely.by - нет.
    Cannot contact authentication server
    Лог:
    [21:41:26 INFO]: Minecraft Launcher 1.6.73-j (through bootstrap 100) started on windows...
    [21:41:26 INFO]: Current time is Jun 8, 2017 9:41:26 PM
    [21:41:26 INFO]: System.getProperty('os.name') == 'Windows 10'
    [21:41:26 INFO]: System.getProperty('os.version') == '10.0'
    [21:41:26 INFO]: System.getProperty('os.arch') == 'amd64'
    [21:41:26 INFO]: System.getProperty('java.version') == '1.8.0_131'
    [21:41:26 INFO]: System.getProperty('java.vendor') == 'Oracle Corporation'
    [21:41:26 INFO]: System.getProperty('sun.arch.data.model') == '64'
    [21:41:26 INFO]: proxy == DIRECT
    [21:41:26 INFO]: JFX is already initialized
    [21:41:26 INFO]: Refreshing local version list...
    [21:41:26 INFO]: Refreshing remote version list...
    [21:41:28 INFO]: Refresh complete.
    [21:41:28 INFO]: Loaded 1 profile(s); selected 'Hello_Eddy'
    [21:41:28 INFO]: Refreshing auth...
    [21:41:28 INFO]: Logging in with access token
    [21:41:29 ERROR]: Exception whilst logging into profile
    com.mojang.authlib.exceptions.AuthenticationUnavailableException: Cannot contact authentication server
    at com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService.makeRequest(YggdrasilAuthenticationService.java:71) ~[java.jar:1.6.73-j]
    at com.mojang.authlib.yggdrasil.YggdrasilUserAuthentication.logInWithToken(YggdrasilUserAuthentication.java:132) ~[java.jar:1.6.73-j]
    at com.mojang.authlib.yggdrasil.YggdrasilUserAuthentication.logIn(YggdrasilUserAuthentication.java:55) ~[java.jar:1.6.73-j]
    at net.minecraft.launcher.Launcher.ensureLoggedIn(Launcher.java:260) [java.jar:1.6.73-j]
    at net.minecraft.launcher.Launcher$3.run(Launcher.java:214) [java.jar:1.6.73-j]
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_131]
    at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_131]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_131]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_131]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_131]
    Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at sun.security.ssl.Alerts.getSSLException(Unknown Source) ~[?:1.8.0_131]
    at sun.security.ssl.SSLSocketImpl.fatal(Unknown Source) ~[?:1.8.0_131]
    at sun.security.ssl.Handshaker.fatalSE(Unknown Source) ~[?:1.8.0_131]
    at sun.security.ssl.Handshaker.fatalSE(Unknown Source) ~[?:1.8.0_131]
    at sun.security.ssl.ClientHandshaker.serverCertificate(Unknown Source) ~[?:1.8.0_131]
    at sun.security.ssl.ClientHandshaker.processMessage(Unknown Source) ~[?:1.8.0_131]
    at sun.security.ssl.Handshaker.processLoop(Unknown Source) ~[?:1.8.0_131]
    at sun.security.ssl.Handshaker.process_record(Unknown Source) ~[?:1.8.0_131]
    at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source) ~[?:1.8.0_131]
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source) ~[?:1.8.0_131]
    at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source) ~[?:1.8.0_131]
    at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source) ~[?:1.8.0_131]
    at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source) ~[?:1.8.0_131]
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source) ~[?:1.8.0_131]
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(Unknown Source) ~[?:1.8.0_131]
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown Source) ~[?:1.8.0_131]
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(Unknown Source) ~[?:1.8.0_131]
    at com.mojang.authlib.HttpAuthenticationService.performPostRequest(HttpAuthenticationService.java:73) ~[java.jar:1.6.73-j]
    at com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService.makeRequest(YggdrasilAuthenticationService.java:54) ~[java.jar:1.6.73-j]
    ... 9 more
    Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at sun.security.validator.PKIXValidator.doBuild(Unknown Source) ~[?:1.8.0_131]
    at sun.security.validator.PKIXValidator.engineValidate(Unknown Source) ~[?:1.8.0_131]
    at sun.security.validator.Validator.validate(Unknown Source) ~[?:1.8.0_131]
    at sun.security.ssl.X509TrustManagerImpl.validate(Unknown Source) ~[?:1.8.0_131]
    at sun.security.ssl.X509TrustManagerImpl.checkTrusted(Unknown Source) ~[?:1.8.0_131]
    at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source) ~[?:1.8.0_131]
    at sun.security.ssl.ClientHandshaker.serverCertificate(Unknown Source) ~[?:1.8.0_131]
    at sun.security.ssl.ClientHandshaker.processMessage(Unknown Source) ~[?:1.8.0_131]
    at sun.security.ssl.Handshaker.processLoop(Unknown Source) ~[?:1.8.0_131]
    at sun.security.ssl.Handshaker.process_record(Unknown Source) ~[?:1.8.0_131]
    at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source) ~[?:1.8.0_131]
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source) ~[?:1.8.0_131]
    at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source) ~[?:1.8.0_131]
    at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source) ~[?:1.8.0_131]
    at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source) ~[?:1.8.0_131]
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source) ~[?:1.8.0_131]
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(Unknown Source) ~[?:1.8.0_131]
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown Source) ~[?:1.8.0_131]
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(Unknown Source) ~[?:1.8.0_131]
    at com.mojang.authlib.HttpAuthenticationService.performPostRequest(HttpAuthenticationService.java:73) ~[java.jar:1.6.73-j]
    at com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService.makeRequest(YggdrasilAuthenticationService.java:54) ~[java.jar:1.6.73-j]
    ... 9 more
    Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at sun.security.provider.certpath.SunCertPathBuilder.build(Unknown Source) ~[?:1.8.0_131]
    at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source) ~[?:1.8.0_131]
    at java.security.cert.CertPathBuilder.build(Unknown Source) ~[?:1.8.0_131]
    at sun.security.validator.PKIXValidator.doBuild(Unknown Source) ~[?:1.8.0_131]
    at sun.security.validator.PKIXValidator.engineValidate(Unknown Source) ~[?:1.8.0_131]
    at sun.security.validator.Validator.validate(Unknown Source) ~[?:1.8.0_131]
    at sun.security.ssl.X509TrustManagerImpl.validate(Unknown Source) ~[?:1.8.0_131]
    at sun.security.ssl.X509TrustManagerImpl.checkTrusted(Unknown Source) ~[?:1.8.0_131]
    at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source) ~[?:1.8.0_131]
    at sun.security.ssl.ClientHandshaker.serverCertificate(Unknown Source) ~[?:1.8.0_131]
    at sun.security.ssl.ClientHandshaker.processMessage(Unknown Source) ~[?:1.8.0_131]
    at sun.security.ssl.Handshaker.processLoop(Unknown Source) ~[?:1.8.0_131]
    at sun.security.ssl.Handshaker.process_record(Unknown Source) ~[?:1.8.0_131]
    at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source) ~[?:1.8.0_131]
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source) ~[?:1.8.0_131]
    at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source) ~[?:1.8.0_131]
    at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source) ~[?:1.8.0_131]
    at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source) ~[?:1.8.0_131]
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source) ~[?:1.8.0_131]
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(Unknown Source) ~[?:1.8.0_131]
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown Source) ~[?:1.8.0_131]
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(Unknown Source) ~[?:1.8.0_131]
    at com.mojang.authlib.HttpAuthenticationService.performPostRequest(HttpAuthenticationService.java:73) ~[java.jar:1.6.73-j]
    at com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService.makeRequest(YggdrasilAuthenticationService.java:54) ~[java.jar:1.6.73-j]
    ... 9 more

    На что поменял:
    upload_2017-6-8_21-47-24.png

    upload_2017-6-8_21-47-52.png

    upload_2017-6-8_21-48-17.png

    До сервера ответ есть:
    upload_2017-6-8_21-49-19.png

    upload_2017-6-8_21-49-55.png

    Есть какие-нибудь идеи?)

    К вопросу рекламы:
    upload_2017-6-8_21-47-1.png
     
  4. Автор темы
    ErickSkrauch

    ErickSkrauch Активный участник Пользователь

    Баллы:
    68
    Имя в Minecraft:
    ErickSkrauch
    @Hello Eddy, ох, я всё время забываю про наше наследие. Замени все домены на http://minecraft.ely.by (все остальные пути оставь теми же, просто домен поменяй). На authserver.ely.by используется сертификат от WoSign, который только актуальные версии Java поддерживают, так что мы вернули в строй старый домен без http.

    На счёт TLauncher... Да, этот TL настоящий и такой рекламный блок с каких-то пор там есть. Но всё же, если тебе так и не удастся совладать с лицензионным лаунчером, то альтернатив не много: TL или свой лаунчер.
     
  5. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    P.s система скинов спеклась кстати, теперь выгоднее юзать скинрестори и получать тот же эффект.
     
  6. Автор темы
    ErickSkrauch

    ErickSkrauch Активный участник Пользователь

    Баллы:
    68
    Имя в Minecraft:
    ErickSkrauch
  7. Hello Eddy

    Hello Eddy Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    Hello_Eddy
    Спасибо, заработало)))
    Только теперь при входе на сервер недействительная сессия
    Вывод сервера:
    [22:17:04 INFO]: com.mojang.authlib.GameProfile@21e2af73[id=<null>,name=HelloEddy,properties={},legacy=false] (/37.204.34.11:54093) lost connection: Disconnected

    Как сделать так, чтобы работало подключение по https? не думаю, что кому-то интересно красть аккаунты, но всё же))
     
  8. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    А никак, нужен серт доверенный. Иначе это не безопасно.
     
  9. Hello Eddy

    Hello Eddy Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    Hello_Eddy
    Доверенный - подписанный центром сертификации или именно непубличный?
     
  10. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Да он самый.
     
  11. Автор темы
    ErickSkrauch

    ErickSkrauch Активный участник Пользователь

    Баллы:
    68
    Имя в Minecraft:
    ErickSkrauch
    Для join/hasJoined операций можно использовать новый API через сервис Аккаунты Ely.by, но пока по нему не опубликована документация, я бы воздержался от его использования. У меня есть 4 варианта, как можно заставить работать домен authserver.ely.by:
    1. Как отметил @alexandrage, необходимо добавить наш сертификат в доверенные в рамках своей системы;
    2. Обновить Java до версии, поддерживающей сертификаты вроде WoSign или Let'sEncrypt;
    3. Отключить в самой Java проверку корневых сертификатов (хотя по факту это равно использованию http);
    4. Отсыпать нам ужасающие 5$, чтобы мы купили нормальный сертификат на этот домен.
    Как видишь, все эти действия предполагают совершения дополнительных действий, которые никто в здравом уме совершать не станет. Так что наиболее простым решением будет использовать домен minecraft.ely.by и ждать с моря погоды :)

    Мы работаем над приведением всех сервисов проекта к единому стандарту с лёгкой интеграцией, но пока приходится использовать всё наследие, что у нас имеется.
     
  12. Hello Eddy

    Hello Eddy Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    Hello_Eddy
    Скачал спигот 1.12 и поменял адреса для авторизации, сервера и апи.
    Теперь выдает такую бяку в логе:
    (пробую пока с тлаунчером и аккаунтом ely.by)
    [21:33:20 WARN]: Exception in thread "User Authenticator #2"
    [21:33:20 WARN]: java.lang.AbstractMethodError: com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService.hasJoinedServer(Lcom/mojang/authlib/GameProfile;Ljava/lang/String;Ljava/net/InetAddress;)Lcom/mojang/authlib/GameProfile;
    [21:33:20 WARN]: at net.minecraft.server.v1_12_R1.LoginListener$3.run(LoginListener.java:217)
    [21:33:49 INFO]: Disconnecting com.mojang.authlib.GameProfile@383eaf0f[id=<null>,name=HelloEddy,properties={},legacy=false] (/37.204.34.11:57334): Took too long to log in
    [21:33:49 INFO]: com.mojang.authlib.GameProfile@383eaf0f[id=<null>,name=HelloEddy,properties={},legacy=false] (/37.204.34.11:57334) lost connection: Took too long to log in
    С чего можно начать расследование?

    С оригиналом и учетной записью моджанг работает
    [22:01:15 INFO]: UUID of player Hello_Eddy is 33f09d1d-bb6f-4b4f-aa53-8d5ac29e0bca
    [22:01:15 INFO]: Disconnecting com.mojang.authlib.GameProfile@32751248[id=33f09d1d-bb6f-4b4f-aa53-8d5ac29e0bca,name=Hello_Eddy,properties={textures=[com.mojang.authlib.properties.Property@6f39ff43]},legacy=false] (/37.204.34.11:57940): Приносим извинения. На данный момент сервер находится на тестировании.

    И какой должна быть версия джавы, чтобы нормально работать с Let's Encrypt?
    У меня стоит 8 up-131.
    На сервере только что поставил 9 в надежде, что с ней заработает авторизация (не заработало, раньше 8 стояла.)
    Задал аналогичный вопрос в группу на странице вконтакте, меня отправили сюда и предложили собрать модуль из исходников, но такого глубокого опыта с java у меня было и об этом я туда писал и, если бы он был, таких вопросов бы не было.
    Как я понял, на текущий момент поддержки такой авторизации нет (так, чтобы взял, сделал по инструкции и работает). Собственно и какой тогда смысл в системе объединенной для серверов авторизации? (без обид к разработчику..)
    Вопрос: в будущем она будет поддерживаться и если да - то когда?
     
    Последнее редактирование: 9 июн 2017
  13. Hello Eddy

    Hello Eddy Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    Hello_Eddy
    Появились какие-нибудь идеи? :)
     
  14. Автор темы
    ErickSkrauch

    ErickSkrauch Активный участник Пользователь

    Баллы:
    68
    Имя в Minecraft:
    ErickSkrauch
    @Hello Eddy где-то месяц назад мы заменили сертификат на authserver.ely.by на не-WoSign, который отлично работает с любой версией Java. Теперь ни у кого не должно быть никаких проблем.
     
  15. MrMagaChannel

    MrMagaChannel Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    mrmagachannel
    @ErickSkrauch
    Возможно ли сделать так, чтобы ChangeSkin загружал скины как с ely.by, так и с mojang.
     
  16. Автор темы
    ErickSkrauch

    ErickSkrauch Активный участник Пользователь

    Баллы:
    68
    Имя в Minecraft:
    ErickSkrauch
    Наверное... Мы выпустили свой плагин: http://ely.by/server-skins-system. Только используй версию 0.2.0-beta.
     
  17. MrMagaChannel

    MrMagaChannel Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    mrmagachannel
    Нет, дело в том, что ChangeSkin Позволяет ставить скин по нику /skin ник, а ваш плагин, к сожалению нет.
     
  18. Автор темы
    ErickSkrauch

    ErickSkrauch Активный участник Пользователь

    Баллы:
    68
    Имя в Minecraft:
    ErickSkrauch
    Просто из интереса: как должна работать команда /skin для плагина Ely, если скины не привязаны к никам и могут быть сменены в один клик на сайте?
     
  19. MrMagaChannel

    MrMagaChannel Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    mrmagachannel
    Допустим я хочу позволять игрокам ставить скин по нику через /skin из mojang, либо же загрузить на свой ник скин в ely.by. ChangeSkin и ely.by будут конфликтовать.
     
  20. MrMagaChannel

    MrMagaChannel Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    mrmagachannel
    Я немного путаюсь. На ely.by можно ставить скин с ника из mojang быстро или только из ely.by, а для Mojang Нужно скачивать и ставить на свой аккаунт сам скин?
     

Поделиться этой страницей