56 Commits

Author SHA1 Message Date
Evan Goode
770ceededb Batch and rate-limit POST /profiles/minecraft to fallback API servers
For https://github.com/unmojang/drasl/issues/112
2025-04-04 21:00:08 -04:00
Evan Goode
99b8540295 Rename AllowCreatingDeletingPlayers to AllowAddingDeletingPlayers 2025-03-30 12:15:00 -04:00
Evan Goode
817bb432c2 Lint 2025-03-29 19:19:31 -04:00
Evan Goode
a5c06f8827 Add AllowCreatingDeletingPlayers 2025-03-29 18:29:56 -04:00
Evan Goode
a9b1531111 Fixups 2025-03-29 17:29:52 -04:00
Evan Goode
5c1f6c1cfa
Implement SSO via OIDC (#127)
Resolves https://github.com/unmojang/drasl/issues/39

* Use __Host- cookie prefix instead of setting Domain

See https://stackoverflow.com/a/64735551

* Unlinking OIDC accounts

* AllowPasswordLogin, OIDC docs, cleanup

* YggdrasilError

* Migrate existing password users without login

* API query/create/delete user OIDC identities

* test APICreateOIDCIdentity

* test APIDeleteeOIDCIdentity

* API Create users with OIDC identities

* OIDC: PKCE

* Use YggdrasilError in authlib-injector routes

* OIDC: AllowChoosingPlayerName

* recipes.md: Update for OIDC and deprecated config options

* OIDC: fix APICreateUser without password, validate oidcIdentities

* OIDC: error at complete-registration if no preferred player name

* Proper error pages

* MC_ prefix for Minecraft Tokens
2025-03-22 16:40:26 -04:00
Evan Goode
dc0d79d165 Test non-admin update-user 2025-02-27 19:53:23 -05:00
хлифи
fbc8f9d45a
APIs for login and register (#136)
* APIs for login and register

* return 403 instead of 423 if account is locked

* add login API route to ratelimiter

* APILogin remove browser token gen & return, give API token instead

* generalize login logic

* remove transient user handling

* remove APIRegisterChallenge due to unnecessary

* remove honeypot from APIRegister

* APIRegister remove browser token gen & return, give API token instead

* add register API route to ratelimiter

* add missing API godoc

* Clean up app.Login error handling

* Fix rate-limit errors for API routes

* Deduplicate APICreateUser and APIRegister

* Rate-limit all non-admin unsafe API requests

* APILogin test

* Make SetIsLocked write to the tx

* Add CORSAllowOrigins option

* Assert SetIsLocked without err variable

* Fix and test API rate limiting

---------

Co-authored-by: Evan Goode <mail@evangoo.de>
2025-02-15 21:43:02 -05:00
Evan Goode
43f9d3d815 Test /web/create-player 2024-12-28 21:07:32 -05:00
Evan Goode
ca081f8519 Run tests in parallel 2024-12-28 21:07:32 -05:00
Evan Goode
d6d29b2274 Allow setting max player count on edit user page 2024-12-28 21:07:32 -05:00
Evan Goode
1da3ac2601 Allow setting user's max player count in admin panel 2024-12-28 21:07:32 -05:00
Evan Goode
aa6f8d314b Tests passing 2024-12-28 21:07:32 -05:00
Evan Goode
faec464a4e Most Front tests passing 2024-12-28 21:07:32 -05:00
Evan Goode
1a8d312797 Tests passing except Front 2024-12-28 21:07:32 -05:00
Evan Goode
60b6414a50 Test for AllowTextureFromURL 2024-11-26 14:56:59 -05:00
Evan Goode
3e11390c04 Link to API docs from README 2024-08-15 12:33:59 -04:00
Evan Goode
db14f9340d APIGetChallengeSkin, cleanup 2024-08-15 12:33:59 -04:00
Evan Goode
8f1a87aa1a More API routes and refactoring 2024-08-15 12:33:59 -04:00
Evan Goode
f7ad78d8e9 refactor: CreateUser 2024-08-15 12:33:59 -04:00
cat
3441839905 Add ApplicationName, use generic URLs in web UI 2024-08-15 12:33:59 -04:00
Evan Goode
c4384759dc Have InvalidateUser take a transaction 2024-06-27 12:47:18 -04:00
Evan Goode
f68e2308c0 Icon 2023-09-17 00:21:05 -04:00
Evan Goode
569a273292 A couple skin tests 2023-09-07 16:48:07 -04:00
Evan Goode
d3bbc02983 unescape errorMessage cookie in tests 2023-08-26 12:11:40 -04:00
Evan Goode
db03ec3e97 Test setting skin/cape when skins/capes disallowed
Resolves https://github.com/unmojang/drasl/issues/20
2023-08-20 23:07:50 -04:00
Evan Goode
fa5cd70eda Make player names case-insensitive
Resolves https://github.com/unmojang/drasl/issues/29
2023-08-20 22:34:55 -04:00
Evan Goode
fec8371816 Services tests 2023-08-20 00:47:54 -04:00
Evan Goode
3456e33085 Switch from 32-character hex accessTokens to JWTs 2023-08-20 02:15:04 +00:00
Evan Goode
fecd6e5daf Mostly cleanup, error handling, authlib-injector fixes 2023-07-28 16:33:45 -04:00
Evan Goode
7d5bab6e88 some services tests 2023-07-26 23:49:37 -04:00
Evan Goode
6405e36db7 Tests for authserver 2023-07-22 18:51:20 -04:00
Evan Goode
7665b2129d Add configurable body size limit
Closes #13
2023-07-08 23:30:30 -04:00
Evan Goode
57f9096205 add trefoil logo 2023-07-08 22:40:40 -04:00
Evan Goode
acbd22a011 DefaultAdmins, interface fixes 2023-07-07 20:39:19 -04:00
Evan Goode
f9c548bae1 rework setting skin/cape to hopefully avoid race conditions 2023-07-07 16:30:54 -04:00
Evan Goode
576aff30be honeypot to stop pesky 2009-era form bots 2023-07-07 16:30:48 -04:00
Evan Goode
63fe0a2be3 update-users, delete-user tests, cleanup 2023-07-06 02:38:03 +00:00
Evan Goode
42aed3bf61 Test create/delete invite, some admin stuff 2023-07-06 02:38:03 +00:00
Evan Goode
aca64b5acc invite existing player, mutex for setskin/setcape 2023-07-06 02:38:03 +00:00
Evan Goode
ca3821b2cd tests, allow viewing another profile as admin 2023-07-06 02:38:03 +00:00
Evan Goode
22d5f3525d initial work on invites, admin page 2023-07-06 02:38:03 +00:00
Evan Goode
393f0c24e2 front_test: fallback player 2023-06-25 15:32:24 -04:00
Evan Goode
bbffae71f7 configuration.md 2023-06-25 15:32:24 -04:00
Evan Goode
93127eb9d5 fix tests 2023-06-17 23:57:53 -04:00
Evan Goode
c9c8a1ef32 rate limiting: fix tests 2023-06-17 23:52:23 -04:00
Evan Goode
7de5d70a9a rate limiting: enable by default 2023-06-17 23:39:25 -04:00
Evan Goode
ada118546f initial support for authlib-injector 2023-06-03 23:16:42 -04:00
Evan Goode
4fdb587119 Go all in on the unified server design 2023-06-03 19:39:35 -04:00
Evan Goode
e99bbb51d6 rate limiting 2023-05-31 01:11:19 -04:00