Repository navigation
fix(auth): bind FastLoginPlus pre-login facade to native Connection and AES setter - #5
Merged
Conversation
…dern encryption setter
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Production regression
Java Premium players are disconnected while FastLoginPlus is verifying Mojang sessions (
Player ... disconnected during session verification, aborting), and the client getsio.netty.handler.codec.DecoderException: Received unknown packet id 49after ProtocolLib2PacketEvents v1.0.8. Two separate users reproduced.Root cause
P2P's
TemporaryPlayerAdapter.create(User)made a ProtocolLib pre-login Player facade with itsinjectorset to null. FastLoginPlusProtocolLibCompat.getInjector()callsTemporaryPlayerFactory.getInjectorFromPlayer(); with no injector, it incorrectly treats the connection as offline during session verification. Also P2P'sNettyChannelInjectoralways hadnetworkManager=null, even though FastLoginPlus requires the genuine NMSnet.minecraft.network.Connectionto enable AES. Its legacyFuzzyReflection.getMethodByParameters("a", SecretKey.class)failed to findsetEncryptionKey(SecretKey)on remapped Leaf/Paper 1.21.11.Fix
packet_handlerby exact class-hierarchy identity, and refresh late-installed handlers; reject unavailable/non-active connections rather than making up an injector.SecretKeyparameter as a fallback for FastLoginPlus's legacya(SecretKey)lookup. Ambiguous methods are rejected.Validation
packet_handlerattachment, rejection of unrelated handler, exact SecretKey method lookup and rejection of ambiguous candidates. Test-only NMS stand-in is undersrc/test/and excluded from production JAR.