CaaMoe / MultiLogin

外置共存
GNU General Public License v3.0
361 stars 56 forks source link

[错误报告] #59

Closed mclk623 closed 2 years ago

mclk623 commented 2 years ago

BUG描述

进入服务器提示 无效的个人信息公钥签名。请尝试重启游戏

[03:04:33 INFO]: Disconnecting com.mojang.authlib.GameProfile@5fe7480b[id=04f3e98c-92fd-3f42-afbe-8a91d926327c,name=FutureBadger623,properties={uploadableTextures=[com.mojang.authlib.properties.Property@65a356e4], textures=[com.mojang.authlib.properties.Property@6377831d]},legacy=false] (/127.0.0.1:58634): Invalid signature for profile public key. Try restarting your game. [03:04:33 INFO]: com.mojang.authlib.GameProfile@5fe7480b[id=04f3e98c-92fd-3f42-afbe-8a91d926327c,name=FutureBadger623,properties={uploadableTextures=[com.mojang.authlib.properties.Property@65a356e4], textures=[com.mojang.authlib.properties.Property@6377831d]},legacy=false] (/127.0.0.1:58634) lost connection: Invalid signature for profile public key. Try restarting your game.

MultiLogin版本

0.3.15

系统架构

linux/amd64

配置文件

###################################

MultiLogin

--config

###################################

在这里,设置所有的 Yggdrasil 账户验证服务器。

services:

这是一个示例配置:

节点名称 'demo' 作为混合验证系统区分 Yggdrasil 验证服务器唯一性的凭据,设置好后请不要随意的去改动它,

随意的更改节点名称将会导致二次验证系统无法验明用户身份而拒绝用户的登入请求。

可以仿写此节点用来添加新的 Yggdrasil 账户验证服务器。

HLGSKIN:

# 启用该验证服务器。
# 值为 'false' 时将不添加该 Yggdrasil 账户验证服务器到混合登入系统中去,将拒绝一切使用该 Yggdrasil 账户验证服务器的玩家登入游戏。
# 默认值 'true'
enable: true

# 该账户验证服务器中的别称。
# 不用于父节点名称,此节点的值可以随意修改。
# 必填值,在 Bukkit 服务端中作为变量传递。
name: "和乐果皮肤站"

# Yggdrasil 账户验证服务器的基本属性和信息设置。
body:

  # Yggdrasil 账户验证服务器服务端 hasJoined 阶段部分验证请求链接设置。
  # 此节点必须指定完整的请求链接。
  # 其中 GET 请求中的占位变量 {username} 表示 username,占位变量 {serverId} 表示 serverId,
  #        占位变量 {passIpContent} 表示 passIpContent 节点所设置的内容。
  # 请求的 URL 对大小写敏感,设置需谨慎!
  # 一些例子:
  #      GET: "https://example.com/session/minecraft/hasJoined?username={username}&serverId={serverId}{passIpContent}"
  #      GET: "https://example.com/session/minecraft/hasJoined?username={username}&serverId={serverId}"
  #      POST: "https://example.com/session/minecraft/hasJoined"
  # 必填值
  url: "https://skin.heleguo.cn/api/yggdrasil/sessionserver/session/minecraft/hasJoined?username={username}&serverId={serverId}"

  # hasJoined 阶段使用 POST 请求的方式验证账户身份。
  # 绝大多数下, Yggdrasil 账户验证服务器 hasJoined 阶段都采用 GET 请求方式验证用户数据的,
  # 如果你不了解当前 Yggdrasil 验证流程的话,请勿擅自改动它。
  # 默认值 'false'
  postMode: false

  # hasJoined 阶段是否向 Yggdrasil 账户验证服务器传递用户 IP 信息,如果存在。
  # 默认值 'false'
  passIp: false

  # 设置 url 节点 {passIpContent} 变量内容,
  # 其中,变量 {ip} 为所获取到的 IP 信息。
  # 仅当 passIp 节点为 true 时此节点有效。
  # 请求的 URL 对大小写敏感,设置需谨慎!
  # 请留意字符串拼接的特殊值 '&' 和 ', '
  # 一些例子:
  #      GET: '&ip={ip}'
  #      POST: ', "ip":"{ip}"'
  # 默认值 '&ip={ip}'
  passIpContent: "&ip={ip}"

  # 设置 post 的请求内容。
  # 其中 POST 请求中的占位变量 {username} 表示 username,占位变量 {serverId} 表示 serverId,
  #        占位变量 {passIpContent} 表示 passIpContent 节点所设置的内容。
  # 请求的 URL 对大小写敏感,设置需谨慎!
  # 一些例子:
  #        '{"username":"{username}", "serverId":"{serverId}"{passIpContent}}'
  #        '{"username":"{username}", "serverId":"{serverId}"}'
  # 默认值 '{"username":"{username}", "serverId":"{serverId}"}'
  postContent: '{"username":"{username}", "serverId":"{serverId}"}'

# 设置玩家首次登入后游戏内的 UUID 生成规则
# 目前只支持以下值:
#   DEFAULT   - 使用 Yggdrasil 账户证服务器提供的在线 UUID
#   OFFLINE   - 自动生成离线 UUID
#   RANDOM    - 随机 UUID
# 请谨慎设置和修改此节点,避免增加日后维护的心智负担。
# 为避免触发 Paper 端的某些机制,强烈建议此值为 DEFAULT
# 默认值 'DEFAULT'
convUuid: DEFAULT

# 当玩家首次登入时分配到的 UUID 已被使用,自动更正到随机的 UUID。
# 请尽量保持此值为 true ,除非您了解后果是什么。
# 默认值 'true'
convRepeat: true

# 玩家允许设置的用户名正则。
# 若不匹配将会拒绝当前玩家的登入请求
# 如果此值留空或未设置,则应用根节点下 'nameAllowedRegular' 节点值。
# 默认值 ''
nameAllowedRegular: ''

# 是否为当前验证服务器单独开启白名单。
# 当全局白名单为 true 时,此节点强制为 true。
# 默认值: false
whitelist: false

# 设置占线登入机制,登入时游戏内存在有相同游戏内 UUID 的玩家时
# 若为 false 将把游戏内玩家踢出,允许验证中的玩家登入(原版默认)
# 若为 true 则拒绝当前的登入请求
# 默认值: false
refuseRepeatedLogin: false

# 验证错误重试次数
# 默认值: 1
authRetry: 1

# 皮肤修复规则,用来解决不同 Yggdrasil 账户验证服务器下的皮肤不可见问题。
#    比如使用 Minecraft 原版验证服务器的玩家无法看到使用第三方外置验证登入玩家的皮肤。
# 目前只支持设置以下值:
#   OFF       - 关闭这个功能
#   LOGIN     - 占用登入时间进行皮肤修复操作(修复时间过长会导致登入超时)
#   ASYNC     - 登入后修复(修复成功后需要重新连接服务器)
# 系统将会自动过滤掉皮肤源域名为 '*.minecraft.net' 的情况
# 皮肤修复服务器来自 'mineskin.org'
# 默认值 'OFF'
skinRestorer: OFF

# 皮肤修复错误重试次数
# 默认值: 2
skinRestorerRetry: 2

此节点代表 Minecraft 原版验证

official: name: "正版" body: url: "https://sessionserver.mojang.com/session/minecraft/hasJoined?username={username}&serverId={serverId}{passIpContent}"

设置所有网络请求的超时时间

默认值 '10000'

servicesTimeOut: 10000

全局白名单开关

默认值 'true'

whitelist: false

玩家允许设置的用户名正则,不匹配将会拒绝登入请求。

当当前 Yggdrasil 账户验证服务器设置中对应设置节点存在值时,此节点对于该验证服务器无效。

默认值 '^[0-9a-zA-Z_]{1,16}$'

nameAllowedRegular: '^[0-9a-zA-Z_]{1,16}$'

插件数据的存放方式

sql:

数据库类型设置

目前至支持以下值:

H2

MYSQL

默认值 'H2'

backend: MYSQL

数据库地址

默认值 '127.0.0.1'

ip: '127.0.0.1'

数据库端口

默认值 '3306'

port: 3306

数据库用户名

默认值 'root'

username: '私密信息'

数据库密码

默认值 '12345'

password: '私密信息'

数据库名称

默认值 'multilogin'

database: '私密信息'

前缀

默认值 'multilogin'

prefix: 'multilogin'

日志

[03:13:45 WARN]: [Slimefun] Attempted to refresh skin cache, got this response: TimeoutException: null [03:13:45 WARN]: [Slimefun] This usually means mojang.com is temporarily down or started to rate-limit this connection, nothing to worry about! [03:14:19 INFO]: [MultiLogin] Authentication passed, login allowed. (user: FutureBadger623, in game uuid: 04f3e98c-92fd-3f42-afbe-8a91d926327c, online uuid: 04f3e98c-92fd-3f42-afbe-8a91d926327c, yggdrasil: HLGSKIN) [03:14:19 INFO]: UUID of player FutureBadger623 is 04f3e98c-92fd-3f42-afbe-8a91d926327c [03:14:19 ERROR]: Failed to verify Services signature java.security.SignatureException: Signature length not correct: got 1 but was expecting 512 at sun.security.rsa.RSASignature.engineVerify(RSASignature.java:213) ~[?:?] at java.security.Signature$Delegate.engineVerify(Signature.java:1435) ~[?:?] at java.security.Signature.verify(Signature.java:789) ~[?:?] at net.minecraft.util.SignatureValidator.verifySignature(SignatureValidator.java:26) ~[mirai-1.19.2.jar:git-Mirai-23] at net.minecraft.util.SignatureValidator.lambda$from$3(SignatureValidator.java:47) ~[mirai-1.19.2.jar:git-Mirai-23] at net.minecraft.util.SignatureValidator.validate(SignatureValidator.java:19) ~[mirai-1.19.2.jar:git-Mirai-23] at net.minecraft.world.entity.player.ProfilePublicKey$Data.validateSignature(ProfilePublicKey.java:56) ~[?:?] at net.minecraft.world.entity.player.ProfilePublicKey.createValidated(ProfilePublicKey.java:28) ~[mirai-1.19.2.jar:git-Mirai-23] at net.minecraft.server.network.ServerLoginPacketListenerImpl.validatePublicKey(ServerLoginPacketListenerImpl.java:257) ~[?:?] at net.minecraft.server.network.ServerLoginPacketListenerImpl.handleAcceptedLogin(ServerLoginPacketListenerImpl.java:180) ~[?:?] at net.minecraft.server.network.ServerLoginPacketListenerImpl.tick(ServerLoginPacketListenerImpl.java:91) ~[?:?] at net.minecraft.network.Connection.tick(Connection.java:568) ~[?:?] at net.minecraft.server.network.ServerConnectionListener.tick(ServerConnectionListener.java:233) ~[?:?] at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1600) ~[mirai-1.19.2.jar:git-Mirai-23] at net.minecraft.server.dedicated.DedicatedServer.tickChildren(DedicatedServer.java:451) ~[mirai-1.19.2.jar:git-Mirai-23] at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1432) ~[mirai-1.19.2.jar:git-Mirai-23] at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1203) ~[mirai-1.19.2.jar:git-Mirai-23] at net.minecraft.server.MinecraftServer.lambda$spin$1(MinecraftServer.java:307) ~[mirai-1.19.2.jar:git-Mirai-23] at java.lang.Thread.run(Thread.java:833) ~[?:?] [03:14:19 INFO]: Disconnecting com.mojang.authlib.GameProfile@696edb0b[id=04f3e98c-92fd-3f42-afbe-8a91d926327c,name=FutureBadger623,properties={uploadableTextures=[com.mojang.authlib.properties.Property@4d9a9bd3], textures=[com.mojang.authlib.properties.Property@7ed08d11]},legacy=false] (/127.0.0.1:53136): Invalid signature for profile public key. Try restarting your game. [03:14:19 ERROR]: Failed to verify Services signature java.security.SignatureException: Signature length not correct: got 1 but was expecting 512 at sun.security.rsa.RSASignature.engineVerify(RSASignature.java:213) ~[?:?] at java.security.Signature$Delegate.engineVerify(Signature.java:1435) ~[?:?] at java.security.Signature.verify(Signature.java:789) ~[?:?] at net.minecraft.util.SignatureValidator.verifySignature(SignatureValidator.java:26) ~[mirai-1.19.2.jar:git-Mirai-23] at net.minecraft.util.SignatureValidator.lambda$from$3(SignatureValidator.java:47) ~[mirai-1.19.2.jar:git-Mirai-23] at net.minecraft.util.SignatureValidator.validate(SignatureValidator.java:19) ~[mirai-1.19.2.jar:git-Mirai-23] at net.minecraft.world.entity.player.ProfilePublicKey$Data.validateSignature(ProfilePublicKey.java:56) ~[?:?] at net.minecraft.world.entity.player.ProfilePublicKey.createValidated(ProfilePublicKey.java:28) ~[mirai-1.19.2.jar:git-Mirai-23] at net.minecraft.server.network.ServerLoginPacketListenerImpl.validatePublicKey(ServerLoginPacketListenerImpl.java:257) ~[?:?] at net.minecraft.server.network.ServerLoginPacketListenerImpl.handleAcceptedLogin(ServerLoginPacketListenerImpl.java:180) ~[?:?] at net.minecraft.server.network.ServerLoginPacketListenerImpl.tick(ServerLoginPacketListenerImpl.java:91) ~[?:?] at net.minecraft.network.Connection.tick(Connection.java:579) ~[?:?] at net.minecraft.server.network.ServerConnectionListener.tick(ServerConnectionListener.java:233) ~[?:?] at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1600) ~[mirai-1.19.2.jar:git-Mirai-23] at net.minecraft.server.dedicated.DedicatedServer.tickChildren(DedicatedServer.java:451) ~[mirai-1.19.2.jar:git-Mirai-23] at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1432) ~[mirai-1.19.2.jar:git-Mirai-23] at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1203) ~[mirai-1.19.2.jar:git-Mirai-23] at net.minecraft.server.MinecraftServer.lambda$spin$1(MinecraftServer.java:307) ~[mirai-1.19.2.jar:git-Mirai-23] at java.lang.Thread.run(Thread.java:833) ~[?:?] [03:14:19 INFO]: Disconnecting com.mojang.authlib.GameProfile@696edb0b[id=04f3e98c-92fd-3f42-afbe-8a91d926327c,name=FutureBadger623,properties={uploadableTextures=[com.mojang.authlib.properties.Property@4d9a9bd3], textures=[com.mojang.authlib.properties.Property@7ed08d11]},legacy=false] (/127.0.0.1:53136): Invalid signature for profile public key. Try restarting your game. [03:14:19 INFO]: com.mojang.authlib.GameProfile@696edb0b[id=04f3e98c-92fd-3f42-afbe-8a91d926327c,name=FutureBadger623,properties={uploadableTextures=[com.mojang.authlib.properties.Property@4d9a9bd3], textures=[com.mojang.authlib.properties.Property@7ed08d11]},legacy=false] (/127.0.0.1:53136) lost connection: Invalid signature for profile public key. Try restarting your game.

复现步骤

1. 2. 3. ...

确认一遍

CaaMoe commented 2 years ago

56

CaaMoe commented 2 years ago

image