!logo
Authentication mod for Minecraft 1.7.10. Use Microsoft or any Yggdrasil-compatible provider, or run your own auth server alongside the game server. Includes modern and HD skins, animated capes, and optional 3D skin layers.
Some highlights of what Wawel Auth allows you to do:
Wawel Auth does not need to be installed on the client, nor on the server to benefit from a lot of features. You can setup a server that allows Microsoft and ely.by users, without clients having to do anything special. Clients can also benefit from account management, modern skins, and 3d skin layers, even if a server doesn't run Wawel Auth.
!screen1
!forge
Wawel Auth stores a small Minecraft instance-bound config file under config/wawelauth/local.json.
Most other settings, however, are shared across all Minecraft instances (can be disabled using useOsConfigDir).
Those settings live in files stored under the following locations:
%APPDATA%/wawelauth/~/Library/Application Support/wawelauth/$XDG_DATA_HOME/wawelauth/ or ~/.local/share/wawelauth/The main menu is opened with the Auth button in the multiplayer screen.
From there, you can add auth providers, and accounts.
Some things of note:
Manage Local Auth... button is the quickest way to use local accounts on a Wawel Auth server.client.json, in the case a provider does not provide these functions. This is purely cosmetic.
The following options let you configure this:
disableSkinUploaddisableCapeUploaddisableTextureResetThe disable* lists are regexes matched against provider name or API root.
minecraftcapes.net format.[!NOTE] You can also drag and drop skins and capes, if using Java 17+.
config/wawelauth/ to store their config, and state data[!WARNING]
- Your private server key is sensitive information, never share it.
- It is important to not change your server keys, if not absolutely necessary. Wawel Auth client users will need to trust the key again, and authlib-injector users will refuse to connect to a server whose public key has changed.
server.json
{
"wawelAuthEnabled": true,
"serverName": "My WawelAuth Server",
"publicBaseUrl": "auth.example.com:25565",
"apiRoot": "auth",
"admin": {
"enabled": true,
"token": "strong_password_best_if_randomly_generated"
}
}
online-mode=true in server.propertiespublicBaseUrl to the real public base URL clients useapiRoot as a relative path such as authserver.admin.token or WAWELAUTH_ADMIN_TOKENNotes:
publicBaseUrl has no scheme, Wawel Auth assumes http://http://auth.example.com:25565/authonline-mode=false, publicBaseUrl is missing, or apiRoot is configured as a full URLWAWELAUTH_CI=true or GITHUB_ACTIONS=true bypasses the missing-publicBaseUrl hard stopregistration.policy: OPEN, INVITE_ONLY, CLOSEDtextures: max skin / cape dimensions, file limits, animated cape limitshttp: same-port HTTPS enable flag, HTTP read timeout, TLS handshake timeout, and max request body sizeadmin: web UI enable flag, login token, session TTLIf server.admin.enabled=true, the admin UI is available at:
https://your-host:your-port/admin when server.http.httpsEnabled=true (default)http://your-host:your-port/admin for bootstrap/status only; login requires HTTPSIt manages users, textures, invites, whitelist, ops, server.json, and server.properties.
Same-port HTTPS uses a self-signed certificate generated in WawelAuth's data directory; verify the SHA-256 fingerprint printed in the server log when accepting the browser warning.
Fallback providers are defined in fallback-servers.json and checked in order.
{
"fallbackServers": [
...
]
}
[!WARNING]
namemust not contain whitespaces.
[!TIP]
nameis used in provider-scoped commands such as/op player@provider.
{
"name": "mojang",
"sessionServerUrl": "https://sessionserver.mojang.com",
"accountUrl": "https://authserver.mojang.com",
"servicesUrl": "https://api.minecraftservices.com",
"skinDomains": [
".minecraft.net",
".mojang.com"
],
"cacheTtlSeconds": 300
}
{
"name": "ely.by",
"sessionServerUrl": "https://authserver.ely.by/api/authlib-injector/sessionserver",
"accountUrl": "https://authserver.ely.by/api",
"servicesUrl": "https://authserver.ely.by/api/authlib-injector/minecraftservices",
"skinDomains": [
"ely.by",
".ely.by"
],
"cacheTtlSeconds": 300
}
{
"enabled": true,
"name": "littleskin",
"apiRoot": "https://littleskin.cn/api/yggdrasil",
"sessionServerUrl": "https://littleskin.cn/api/yggdrasil/sessionserver",
"accountUrl": "https://littleskin.cn/api/yggdrasil/authserver",
"servicesUrl": "https://littleskin.cn/api/yggdrasil",
"signaturePublicKeyBase64": "",
"skinDomains": [
"littleskin.cn"
],
"cacheTtlSeconds": 300
}
/wawelauth/wawelauth register <username> <password>/wawelauth invite create [uses|unlimited]/wawelauth invite list/wawelauth invite delete <code>/wawelauth invite purge/wawelauth test/whitelist add <username>@<provider>/whitelist remove <username>@<provider>/op <username>@<provider>/deop <username>@<provider><provider> is either a fallbackServers[].name or one of the local aliases: local, localauth, wawelauth, self.
Regular whitelist and op commands are disabled.
[!WARNING] Plain authlib-injector clients (or vanilla) can authenticate against a Wawel Auth server, but mixed-provider skin handling only works if the client and server run Wawel Auth.
./gradlew build
LGPLv3 + SNEED
893tQ56jWt7czBsqAGPq8J5BDnYVCg2tvKpvwTcMY1LS79iDabopdxoUzNLEZtRTH4ewAcKLJ4DM4V41fvrJGHgeKArxwmJ!license
