Go to file
2017-08-13 18:01:52 +08:00
src/main/java/org/to2mbn/authlibinjector migrate code from to2mbn/authlib-agent 2017-08-13 17:43:13 +08:00
.gitignore Add .gitignore 2017-08-12 21:37:44 +08:00
authlib-injector.example.yaml migrate code from to2mbn/authlib-agent 2017-08-13 17:43:13 +08:00
build.gradle Use build number as version 2017-08-13 18:01:52 +08:00
LICENSE Initial commit 2017-08-12 21:35:17 +08:00
README.md migrate code from to2mbn/authlib-agent 2017-08-13 17:43:13 +08:00
settings.gradle Add gradle scripts 2017-08-12 22:42:31 +08:00

authlib-injector

通过运行时修改authlib实现游戏外登录

编译

gradle clean shadowJar

构建输出位于build/libs下。

或者直接从Jenkins下载构建好的JAR。

部署

配置

配置文件模板位于authlib-injector.example.yaml

生成签名公钥

服务端返回的profile properties需要带有数字签名。

可以通过以下方法生成一个新的RSA私钥

openssl genrsa -out key.pem

然后从私钥产生公钥:

openssl rsa -in key.pem -pubout

加载

作为javaagent加载

向JVM参数中添加-javaagent:<path_to_authlib-injector.jar>

该方法适用于所有客户端、服务端、启动器等。

作为mod加载

直接放入mods目录即可。

该方法适用于Forge及Liteloader。

指定配置文件

authlib-injector提供了以下方式来指定配置文件按优先级排序

  1. 通过javaagent参数指定
    • javaagent参数后面添加=<path_to_config>
    • 例如-javaagent:authlib-injector.jar=my-authlib-injector.yaml
    • 仅适用于通过javaagent加载
  2. 通过org.to2mbn.authlibinjector.config属性指定
    • -Dorg.to2mbn.authlibinjector.config=my-authlib-injector.yaml
  3. JAR中的/authlib-injector.yaml文件
    • 可以在编译时向src/main/resources中添加配置文件或者直接向JAR中添加JAR为zip格式
  4. 当前目录下的authlib-injector.yaml文件

本项目与authlib-agent的关系

authlib-agent项目存在较多历史遗留问题并且原项目的javaagent部分及后端部分耦合在一起需要一起构建。因此将原项目的javaagent部分重写并更名authlib-injector同时提供更加友好的配置方式以供其它yggdrasil服务端实现使用。