mirror of
https://github.com/layue13/MoonBridge.git
synced 2026-10-26 19:03:49 +00:00
Authenticate backend player sessions before Join
This commit is contained in:
1 parent
043123e168
commit
66762ac8bb
8 files changed
+530
-41
No files matched your search
@@ -108,6 +108,8 @@ Proxy 为每个插件管理独立的 scope,在停用时自动撤销。项目
|
||||
|
||||
HMAC 挑战认证本身不加密链路;跨机器使用私有加密链路或可信 TLS 终止器。每个实例配置独立的实例 ID、后端名称和密钥;重复认证同一实例会接管旧连接,旧连接的迟到回复不能影响新连接。
|
||||
|
||||
需要在 Bukkit `PlayerJoinEvent` 前验证转发身份的插件可调用 `BukkitSessionService.authenticate(player)`。该方法会校验并移除玩家 profile 中的一次性证明,返回绑定到当前 `Player` 对象的身份;同一对象重复调用返回相同绑定。该预备绑定不会让 `find(player)` 在玩家上线前返回值;`PlayerJoinEvent` 会将它提升为在线会话,未提前认证的登录仍由 Join 监听器验证。被拒绝的 `PlayerLoginEvent` 会清除对应对象的预备绑定,证明到期后也不能再占用有效容量。调用者必须在服务器线程、profile 属性可用时执行认证,并在结果为空时拒绝登录。业务插件仍需在目标 Uranium 构建上确认自己的认证钩子早于权威玩家数据加载;此 API 本身不改变 Bukkit 加载顺序。
|
||||
|
||||
协议已升级为版本 2,proxy 与后端宿主必须一起升级;旧协议和 Java API 已移除,版本 1 连接会明确拒绝。关闭时在有限等待内尝试发送注销帧,代理收到后立即注销目录;若链路阻塞或意外断线,则保留到租约过期,不强制关闭已经存在的玩家游戏连接。
|
||||
|
||||
## 验证范围
|
||||
|
||||
Reference in new issue
Block a user