Jumploader

Jumploader

2M Downloads

AOF3 jumploader authentication token issue

irunatbullets opened this issue ยท 3 comments

commented

Hey comp500, we finally got a log for this. It's still an issue for some people.

This is a Microsoft account using GDlauncher, but also seems to occur on other launchers like curseforge and multimc.

https://paste.ee/p/ElqKl

webpack-internal:///39:229 "C:\_gdl\java\8u242-b08\bin\java.exe" "-XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump" "-Dos.name=Windows 10" "-Dos.version=10.0" -Djava.library.path="C:\_gdl\instances\All of Fabric 3   1 16 5\natives" -Dminecraft.launcher.brand=GDLauncher -Dminecraft.launcher.version=1.0 -cp "C:\_gdl\datastore\libraries\net\minecraftforge\forge\1.16.5-36.0.13\forge-1.16.5-36.0.13.jar";"C:\_gdl\datastore\libraries\org\ow2\asm\asm\9.0\asm-9.0.jar";"C:\_gdl\datastore\libraries\org\ow2\asm\asm-commons\9.0\asm-commons-9.0.jar";"C:\_gdl\datastore\libraries\org\ow2\asm\asm-tree\9.0\asm-tree-9.0.jar";"C:\_gdl\datastore\libraries\org\ow2\asm\asm-util\9.0\asm-util-9.0.jar";"C:\_gdl\datastore\libraries\org\ow2\asm\asm-analysis\9.0\asm-analysis-9.0.jar";"C:\_gdl\datastore\libraries\cpw\mods\modlauncher\8.0.9\modlauncher-8.0.9.jar";"C:\_gdl\datastore\libraries\cpw\mods\grossjava9hacks\1.3.0\grossjava9hacks-1.3.0.jar";"C:\_gdl\datastore\libraries\net\minecraftforge\accesstransformers\3.0.1\accesstransformers-3.0.1.jar";"C:\_gdl\datastore\libraries\org\antlr\antlr4-runtime\4.9.1\antlr4-runtime-4.9.1.jar";"C:\_gdl\datastore\libraries\net\minecraftforge\eventbus\4.0.0\eventbus-4.0.0.jar";"C:\_gdl\datastore\libraries\net\minecraftforge\forgespi\3.2.0\forgespi-3.2.0.jar";"C:\_gdl\datastore\libraries\net\minecraftforge\coremods\4.0.3\coremods-4.0.3.jar";"C:\_gdl\datastore\libraries\net\minecraftforge\unsafe\0.2.0\unsafe-0.2.0.jar";"C:\_gdl\datastore\libraries\com\electronwill\night-config\core\3.6.2\core-3.6.2.jar";"C:\_gdl\datastore\libraries\com\electronwill\night-config\toml\3.6.2\toml-3.6.2.jar";"C:\_gdl\datastore\libraries\org\jline\jline\3.12.1\jline-3.12.1.jar";"C:\_gdl\datastore\libraries\org\apache\maven\maven-artifact\3.6.0\maven-artifact-3.6.0.jar";"C:\_gdl\datastore\libraries\net\jodah\typetools\0.8.3\typetools-0.8.3.jar";"C:\_gdl\datastore\libraries\org\apache\logging\log4j\log4j-api\2.11.2\log4j-api-2.11.2.jar";"C:\_gdl\datastore\libraries\org\apache\logging\log4j\log4j-core\2.11.2\log4j-core-2.11.2.jar";"C:\_gdl\datastore\libraries\net\minecrell\terminalconsoleappender\1.2.0\terminalconsoleappender-1.2.0.jar";"C:\_gdl\datastore\libraries\net\sf\jopt-simple\jopt-simple\5.0.4\jopt-simple-5.0.4.jar";"C:\_gdl\datastore\libraries\org\spongepowered\mixin\0.8.2\mixin-0.8.2.jar";"C:\_gdl\datastore\libraries\net\minecraftforge\nashorn-core-compat\15.1.1\nashorn-core-compat-15.1.1.jar";"C:\_gdl\datastore\libraries\com\mojang\patchy\1.1\patchy-1.1.jar";"C:\_gdl\datastore\libraries\oshi-project\oshi-core\1.1\oshi-core-1.1.jar";"C:\_gdl\datastore\libraries\net\java\dev\jna\jna\4.4.0\jna-4.4.0.jar";"C:\_gdl\datastore\libraries\net\java\dev\jna\platform\3.4.0\platform-3.4.0.jar";"C:\_gdl\datastore\libraries\com\ibm\icu\icu4j\66.1\icu4j-66.1.jar";"C:\_gdl\datastore\libraries\com\mojang\javabridge\1.0.22\javabridge-1.0.22.jar";"C:\_gdl\datastore\libraries\net\sf\jopt-simple\jopt-simple\5.0.3\jopt-simple-5.0.3.jar";"C:\_gdl\datastore\libraries\io\netty\netty-all\4.1.25.Final\netty-all-4.1.25.Final.jar";"C:\_gdl\datastore\libraries\com\google\guava\guava\21.0\guava-21.0.jar";"C:\_gdl\datastore\libraries\org\apache\commons\commons-lang3\3.5\commons-lang3-3.5.jar";"C:\_gdl\datastore\libraries\commons-io\commons-io\2.5\commons-io-2.5.jar";"C:\_gdl\datastore\libraries\commons-codec\commons-codec\1.10\commons-codec-1.10.jar";"C:\_gdl\datastore\libraries\net\java\jinput\jinput\2.0.5\jinput-2.0.5.jar";"C:\_gdl\datastore\libraries\net\java\jutils\jutils\1.0.0\jutils-1.0.0.jar";"C:\_gdl\datastore\libraries\com\mojang\brigadier\1.0.17\brigadier-1.0.17.jar";"C:\_gdl\datastore\libraries\com\mojang\datafixerupper\4.0.26\datafixerupper-4.0.26.jar";"C:\_gdl\datastore\libraries\com\google\code\gson\gson\2.8.0\gson-2.8.0.jar";"C:\_gdl\datastore\libraries\com\mojang\authlib\2.1.28\authlib-2.1.28.jar";"C:\_gdl\datastore\libraries\org\apache\commons\commons-compress\1.8.1\commons-compress-1.8.1.jar";"C:\_gdl\datastore\libraries\org\apache\httpcomponents\httpclient\4.3.3\httpclient-4.3.3.jar";"C:\_gdl\datastore\libraries\commons-logging\commons-logging\1.1.3\commons-logging-1.1.3.jar";"C:\_gdl\datastore\libraries\org\apache\httpcomponents\httpcore\4.3.2\httpcore-4.3.2.jar";"C:\_gdl\datastore\libraries\it\unimi\dsi\fastutil\8.2.1\fastutil-8.2.1.jar";"C:\_gdl\datastore\libraries\org\apache\logging\log4j\log4j-api\2.8.1\log4j-api-2.8.1.jar";"C:\_gdl\datastore\libraries\org\apache\logging\log4j\log4j-core\2.8.1\log4j-core-2.8.1.jar";"C:\_gdl\datastore\libraries\org\lwjgl\lwjgl\3.2.2\lwjgl-3.2.2.jar";"C:\_gdl\datastore\libraries\org\lwjgl\lwjgl-jemalloc\3.2.2\lwjgl-jemalloc-3.2.2.jar";"C:\_gdl\datastore\libraries\org\lwjgl\lwjgl-openal\3.2.2\lwjgl-openal-3.2.2.jar";"C:\_gdl\datastore\libraries\org\lwjgl\lwjgl-opengl\3.2.2\lwjgl-opengl-3.2.2.jar";"C:\_gdl\datastore\libraries\org\lwjgl\lwjgl-glfw\3.2.2\lwjgl-glfw-3.2.2.jar";"C:\_gdl\datastore\libraries\org\lwjgl\lwjgl-stb\3.2.2\lwjgl-stb-3.2.2.jar";"C:\_gdl\datastore\libraries\org\lwjgl\lwjgl-tinyfd\3.2.2\lwjgl-tinyfd-3.2.2.jar";"C:\_gdl\datastore\libraries\com\mojang\text2speech\1.11.3\text2speech-1.11.3.jar";"C:\_gdl\datastore\libraries\net\minecraft\1.16.5.jar" -Xmx3072m -Xms3072m -Dminecraft.applet.TargetDirectory="C:\_gdl\instances\All of Fabric 3   1 16 5" -XX:+UseG1GC cpw.mods.modlauncher.Launcher --width 854 --height 480 --username i_like_trains56 --version 1.16.5 --gameDir "C:\_gdl\instances\All of Fabric 3   1 16 5" --assetsDir "C:\_gdl\datastore\assets" --assetIndex 1.16 --uuid 0c096a23ab714690bf3ee8c780859098 --accessToken __HIDDEN_TOKEN__ --userType mojang --versionType release --launchTarget fmlclient --fml.forgeVersion 36.0.13 --fml.mcVersion 1.16.5 --fml.forgeGroup net.minecraftforge --fml.mcpVersion 20210115.111550
webpack-internal:///39:229 2021-02-10 14:20:08,907 main WARN Advanced terminal features are not available in this environment

webpack-internal:///39:229 [14:20:09] [main/INFO] [cp.mo.mo.Launcher/MODLAUNCHER]: ModLauncher running: args [--width, 854, --height, 480, --username, i_like_trains56, --version, 1.16.5, --gameDir, C:\_gdl\instances\All of Fabric 3   1 16 5, --assetsDir, C:\_gdl\datastore\assets, --assetIndex, 1.16, --uuid, 0c096a23ab714690bf3ee8c780859098, --accessToken, ????????, --userType, mojang, --versionType, release, --launchTarget, fmlclient, --fml.forgeVersion, 36.0.13, --fml.mcVersion, 1.16.5, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20210115.111550]

webpack-internal:///39:229 [14:20:09] [main/INFO] [cp.mo.mo.Launcher/MODLAUNCHER]: ModLauncher 8.0.9+86+master.3cf110c starting: java version 1.8.0_242 by AdoptOpenJDK

actions.js:2321 [14:20:11] [main/INFO] [ne.mi.fm.lo.FixSSL/CORE]: Added Lets Encrypt root certificates as additional trust
[14:20:11] [main/INFO] [li.in.ju.Jumploader/]: Jumploader 2.1.2 initialising, discovering environment...
[14:20:11] [main/INFO] [li.in.ju.re.EnvironmentDiscoverer/]: Detected environment link.infra.jumploader.resolution.EnvironmentDiscoverer.FallbackJarStorage [Minecraft version 1.16.5]
[14:20:11] [main/INFO] [li.in.ju.Jumploader/]: Configuration successfully loaded with sources: [minecraft, fabric] Resolving JARs to jumpload...

actions.js:2321 [14:20:14] [main/FATAL] [li.in.ju.Jumploader/]: Failed to download jar: Authentication token is invalid, please go online to download the Minecraft JAR!

DevTools failed to parse SourceMap: file:///C:/Users/vaibh/AppData/Local/Programs/gdlauncher/resources/app.asar/build/static/css/5.7907dac5.chunk.css.map
DevTools failed to parse SourceMap: file:///C:/Users/vaibh/AppData/Local/Programs/gdlauncher/resources/app.asar/build/static/css/6.7552a003.chunk.css.map
DevTools failed to parse SourceMap: file:///C:/Users/vaibh/AppData/Local/Programs/gdlauncher/resources/app.asar/build/static/css/1.7bd995bc.chunk.css.map
DevTools failed to parse SourceMap: file:///C:/Users/vaibh/AppData/Local/Programs/gdlauncher/resources/app.asar/build/static/css/9.ee62dd02.chunk.css.map
actions.js:2321 ps stderr: Exception in thread "main" 
eval @ actions.js:2321
emit @ events.js:210
addChunk @ _stream_readable.js:308
readableAddChunk @ _stream_readable.js:289
Readable.push @ _stream_readable.js:223
onStreamRead @ internal/stream_base_commons.js:182
actions.js:2321 [14:20:16] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: java.lang.RuntimeException: Failed to download jar
[14:20:16] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at link.infra.jumploader.Jumploader.onLoad(Jumploader.java:114)
[14:20:16] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at cpw.mods.modlauncher.TransformationServiceDecorator.onLoad(TransformationServiceDecorator.java:53)
[14:20:16] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at cpw.mods.modlauncher.TransformationServicesHandler.lambda$loadTransformationServices$11(TransformationServicesHandler.java:131)
[14:20:16] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at java.util.HashMap$Values.forEach(HashMap.java:981)
[14:20:16] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at cpw.mods.modlauncher.TransformationServicesHandler.loadTransformationServices(TransformationServicesHandler.java:131)
[14:20:16] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at cpw.mods.modlauncher.TransformationServicesHandler.initializeTransformationServices(TransformationServicesHandler.java:56)
[14:20:16] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at cpw.mods.modlauncher.Launcher.run(Launcher.java:76)
[14:20:16] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1052]: 	at cpw.mods.modlauncher.Launcher.main(Launcher.java:66)
[14:20:16] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1061]: Caused by: link.infra.jumploader.resolution.download.PreDownloadCheck$PreDownloadCheckException: Authentication token is invalid, please go online to download the Minecraft JAR!
[14:20:16] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1061]: 	at link.infra.jumploader.resolution.sources.MinecraftJarSource.lambda$resolve$1(MinecraftJarSource.java:194)
[14:20:16] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1061]: 	at link.infra.jumploader.resolution.ResolutionProcessor.resolveJars(ResolutionProcessor.java:93)
[14:20:16] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1061]: 	at link.infra.jumploader.Jumploader.onLoad(Jumploader.java:108)
[14:20:16] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1061]: 	... 7 more

actions.js:2321 Process exited with code 1. Not too good..
_callee54$ @ actions.js:2321
tryCatch @ runtime.js:63
invoke @ runtime.js:293
eval @ runtime.js:118
asyncGeneratorStep @ asyncToGenerator.js:3
_next @ asyncToGenerator.js:25
Promise.then (async)
asyncGeneratorStep @ asyncToGenerator.js:13
_next @ asyncToGenerator.js:25
Promise.then (async)
asyncGeneratorStep @ asyncToGenerator.js:13
_next @ asyncToGenerator.js:25
eval @ asyncToGenerator.js:32
eval @ asyncToGenerator.js:21
eval @ actions.js:2321
emit @ events.js:210
maybeClose @ internal/child_process.js:1021
ChildProcess._handle.onexit @ internal/child_process.js:283
commented

If this is only caused by Microsoft accounts (and non-Microsoft accounts still work) I think I can use https://wiki.vg/Microsoft_Authentication_Scheme#Checking_Game_Ownership to fix the validation code.

commented

Can I ask, why do you even need to check the access token? All Minecraft resources are downloadable without any form of authentication.

() -> {
if (side == Side.CLIENT) {
try {
JsonObject req = new JsonObject();
req.addProperty("accessToken", ctx.getArguments().accessToken);
int resCode = RequestUtils.postJsonForResCode(new URL("https://authserver.mojang.com/validate"), req);
if (resCode != 204 && resCode != 200) {
throw new PreDownloadCheck.PreDownloadCheckException("Authentication token is invalid, please go online to download the Minecraft JAR!");
}
} catch (IOException e) {
throw new PreDownloadCheck.PreDownloadCheckException("Failed to check authentication, please go online to download the Minecraft JAR!", e);
}
}
}, "Minecraft " + side + " " + gameVersion));

This is the only usage of the access token that I can find, it's not used anywhere else. Checking for the sake of checking is weird because you are going to hit this exact issue. What if Mojang changes the endpoint someday? While the launchers will be able to adapt, mod packs with an old version of this mod will just stop working.

commented

Originally the check was added as that is what the Minecraft launcher ensures before it starts downloading resources - I believe it doesn't let you download the game files without having logged in. I don't support piracy... but I doubt this check poses much of a barrier to those people (as they can just install Fabric directly), and it's only going to get harder to maintain (and as you mentioned, can break in old modpacks) so I think I'll remove it.

If Mojang does start requiring authentication on resources obviously I'll have to add it back in, but that's sure to require a few other changes anyway.