authlib-injector/README.md

53 lines
2 KiB
Markdown
Raw Normal View History

2017-08-12 15:35:17 +02:00
# authlib-injector
2017-08-21 16:30:11 +02:00
通过运行时修改authlib实现游戏外登录并为Yggdrasil服务端的实现提供规范
关于该项目的详细介绍见[wiki](https://github.com/to2mbn/authlib-injector/wiki)。
2017-08-13 11:43:13 +02:00
## 编译
```
gradle clean shadowJar
```
构建输出位于`build/libs`下。
或者直接从[Jenkins](https://ci.to2mbn.org/job/authlib-injector)下载构建好的JAR。
## 部署
### 配置
配置文件模板位于[authlib-injector.example.yaml](https://github.com/to2mbn/authlib-injector/blob/master/authlib-injector.example.yaml)。
#### 生成签名公钥
服务端返回的profile properties需要带有数字签名。
2017-08-21 16:30:11 +02:00
生成方法见[签名密钥对](https://github.com/to2mbn/authlib-injector/wiki/%E7%AD%BE%E5%90%8D%E5%AF%86%E9%92%A5%E5%AF%B9)。
2017-08-13 11:43:13 +02:00
### 加载
#### 作为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`文件
2017-08-21 16:30:11 +02:00
### 远程自动配置
对于实现了本规范中[扩展API](https://github.com/to2mbn/authlib-injector/wiki/Yggdrasil%E6%9C%8D%E5%8A%A1%E7%AB%AF%E6%8A%80%E6%9C%AF%E8%A7%84%E8%8C%83#%E6%89%A9%E5%B1%95api)的Yggdrasil服务端可以直接通过添加以下JVM参数来配置不需要配置文件
```
-javaagent:{authlib-injector.jar的路径}=@{Yggdrasil服务端的URLAPI Root}
```