authlib-injector is a library that allows you to spoof authorization and session server addresses in the Authlib without modifying the library itself. It’s designed as an javaagent.
This library significantly simplifies the installation of an alternative authorization service in the game client and server, since transformation occurs during application bootstrap process.
You can download the latest version from the releases page on GitHub.
Here is the documentation of the key aspects of installing and using the library. For more information, see the original documentation in Chinese.
Installing in a game client¶
This section describes how to install the authlib-injector into the game. The game launcher still needs to implement the authorization flow itself in order to pass the
accessToken to the game.
To install the library, you need to specify it as a javaagent for the game. You can do this by prepending the line
-javaagent:/path/to/file/authlib-injector.jar=ely.by as a game launching param. As the result, the launch command should look like this:
java -javaagent:/путь/до/файла/authlib-injector.jar=ely.by -jar minecraft.jar
If you run the game through a launcher, then in its settings you need to find a field for specifying additional JVM arguments, in which you need to insert the line above at the beginning.
Installing on a server¶
Just as in the case with the game client, the library must be specified as javaagent. Download the library and put in the server’s directory. Then add the javaagent call to the server launch command:
java -jar minecraft_server.jar
java -javaagent:authlib-injector.jar=ely.by -jar minecraft_server.jar
During server startup you should see a message about the activation of the authlib-injector:
The authlib-injector must be installed directly on the BungeeCord itself, as well as on all backends behind it. Note the configuration of the online-mode parameter:
The BungeeCord’s configuration (
config.yml) should contain
The servers behind the proxy must contain in their configuration (
server.properties) the value
Using such configuration authorization will work for all logging in players and the internal servers will correctly display player skins.
Not all game hostings allow direct modifications of launch arguments. To get around this limitation, you can use a special server that runs the game server by mixing authlib-injector into it. To install, follow these instructions:
Download the corresponding LaunchHelper for your operating system from the releases page.
Upload this file and the
authlib-injector.jarfile to the server folder on your hosting site.
Also create a
launchhelper.propertiesfile and put the following contents into it:
javaAgentJarPath=authlib-injector.jar javaAgentOptions=ely.by execJarPath=minecraft_server.jar
javaAgentJarPathcontains the path to the authlib-injector.jar file and
execJarPathcontains the name of the server file.
In the hosting control panel, specify the
LaunchHelper.jaras the server file.
If you can’t change the executable file, you should rename the
LaunchHelper.jarfile to match your hosting requirements (usually,
server.jar). In this case, you should have the following file structure:
server.jar- the LaunchHelper file.
minecraft_server.jar- your server core.
authlib-injector.jar- the authlib-injector file.
launchhelper.properties- the configuration file for the LaunchHelper.