Links
Tags
Creators
Details
1.1.0
Compatibility
Changes
๐ชช BedrockPassport 1.1.0
BedrockPassport 1.1.0 adds support for verified Java accounts on online-mode servers while preserving the existing LOCAL identity flow for offline-mode servers.
This release introduces the new JAVA_ACCOUNT provider, allowing Bedrock players to select and use real Java accounts before backend login.
๐ Verified Java accounts on online-mode servers
When the server uses online-mode=true, BedrockPassport now switches to the JAVA_ACCOUNT identity provider.
Bedrock players can:
- add a real Java account from the BedrockPassport selector
- authenticate it through Microsoft's device-code login flow
- use the account's real Java username and UUID
- join the backend as that verified Java profile
- save the account for future Bedrock connections
- switch between multiple verified Java accounts from the selector
The backend receives the same Java identity that belongs to the authenticated Java account instead of creating a separate Bedrock-side server identity.
This allows UUID-bound data such as inventory, permissions, statistics, claims and other player data to remain attached to the same Java account when joining from Bedrock.
๐ Microsoft authentication and saved accounts
New Java accounts are verified through Geyser's Microsoft/Minecraft authentication flow.
The first connection follows this flow:
Bedrock/Xbox login
โ
BedrockPassport selector
โ
Add Java account
โ
Microsoft device-code authentication
โ
Verified Java username + UUID
โ
Online-mode backend login
After the account has been saved, the player can select it directly on later connections.
BedrockPassport refreshes the saved authentication chain and reconnects using the same verified Java profile without requiring the full device-code flow again unless re-authentication is needed.
๐ Encrypted credential storage
Saved Java authentication chains are encrypted before being stored.
BedrockPassport uses AES-GCM encryption and keeps the encryption key separately from the database:
plugins/BedrockPassport/passport.db
plugins/BedrockPassport/credentials.key
Both files should be treated as sensitive server data and backed up together.
Authentication tokens and saved auth chains are not exposed through normal BedrockPassport commands or logs.
๐ Automatic identity mode selection
BedrockPassport now automatically selects the correct identity provider from the backend server mode:
online-mode=false โ LOCAL
online-mode=true โ JAVA_ACCOUNT
No separate BedrockPassport mode setting is required.
๐ชช LOCAL mode remains supported
The existing offline-mode behavior is preserved.
LOCAL identities continue to use:
- saved server usernames
- deterministic offline UUIDs
- Floodgate for the pre-backend identity handoff
- the server's normal authentication plugin for account ownership verification
A LOCAL Passport identity is still treated as untrusted identity selection, not proof that the Bedrock user owns that server account.
๐ Floodgate coexistence
Floodgate can remain installed when BedrockPassport is running in JAVA_ACCOUNT mode.
Integrated Geyser installations can automatically switch Java authentication back to Floodgate when Floodgate is detected. BedrockPassport now handles this automatically by:
- restoring Geyser's Java authentication path to
online - keeping verified Java accounts on the real online authentication path
- preventing Floodgate's server-side login handler from interpreting verified Java logins as Floodgate logins
- restoring Floodgate packet handling when the BedrockPassport online runtime stops
This allows Floodgate to remain installed without interfering with verified Java account logins.
๐ Reconnect and account reuse
Saved verified Java accounts can be reused after reconnecting.
Runtime testing confirmed:
- Microsoft device-code authentication
- successful verification of a real Java account
- backend login using the real Java username and UUID
- disconnect and reconnect
- selecting the saved Java account
- reconnecting without repeating the initial linking flow
- preserving the same Java UUID across reconnects
- the original LOCAL/Floodgate flow still working after the changes
๐ ๏ธ Other changes
- Added the new
JAVA_ACCOUNTidentity provider - Added provider-aware identity storage and database migration
- Added encrypted credential storage for verified Java accounts
- Added Microsoft re-authentication handling
- Added online-mode Geyser session handoff support
- Added Floodgate packet isolation for verified Java logins
- Added provider and trust information to
/bp status - Preserved the existing LOCAL/Floodgate behavior
- Improved reconnect and session cleanup behavior
- Updated documentation for both identity providers
- Updated the project version to 1.1.0

Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:xlbqOfvO:dz1x1fBY"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:xlbqOfvO:dz1x1fBY"
}

