Commit Graph
69 Commits
Author SHA1 Message Date
Quentin Gliech 3bdfd68f9d Rework warp top-filters to get proper 404 errors
Before, some had `warp::get().and(warp::path!("foo"))`, which resulted
to a `405 Method not allowed` instead of a 404.

It also uses the `wrap::path!` macro instead of the function to ensure
we're not setting a prefix
2021-08-13 16:20:09 +02:00
Quentin Gliech 787ff192fe Implement basic token introspection endpoint 2021-08-13 15:45:51 +02:00
Quentin Gliech 0596b65f12 Implement proper access token generation 2021-08-13 14:15:20 +02:00
Quentin Gliech da13e24789 Acquire DB conns and txns on filter level
This avoids having the pool everywhere and instead have connections and
transactions as parameters
2021-08-13 09:38:41 +02:00
Quentin Gliech 4eb1b5d4f8 allow completing an oauth2 session after login 2021-08-06 16:57:49 +02:00
Quentin Gliech 274251ceda wrap HTML responses with warp::reply::html
This sets the Content-Type in responses
2021-08-06 13:57:51 +02:00
Quentin Gliech 66f0605c15 set the response_{modes,types}_supported fields in the discovery document 2021-08-06 13:55:45 +02:00
Quentin Gliech 0e68061f7f support the form_post response mode
also clarify the `register_templates` macro
2021-08-06 12:17:19 +02:00
Quentin Gliech 88c0a80f64 Continue implementing the authorization code grant 2021-08-05 23:44:35 +02:00
Quentin Gliech bbeef9151d Document some of the templates related structures 2021-08-05 17:48:41 +02:00
Quentin Gliech f5333da0d2 Remove unnecessary boxing of filters
This might help with error handling, knowing what filter are fallible or not
2021-08-05 17:46:46 +02:00
Quentin Gliech 7a3bcd210d Strongly-typed templates 2021-08-05 14:43:42 +02:00
Quentin Gliech dcc84e1083 starting the oauth2 authorization flow
also enable compile-time validation of queries
2021-07-31 23:22:41 +02:00
Quentin Gliech 1cfd74dae5 move all IDs in DB to 64bit integers 2021-07-31 15:11:35 +02:00
Quentin Gliech 95677fea03 remove old sessions migrations 2021-07-31 14:51:30 +02:00
Quentin Gliech f079229abd better CSRF form handling 2021-07-31 14:47:54 +02:00
Quentin Gliech 9b6eae17ea better logging and http handling 2021-07-30 23:07:29 +02:00
Quentin Gliech dcc4cee6b4 better enforcement of auth and csrf protection 2021-07-30 18:02:05 +02:00
Quentin Gliech 40aa7fcd01 fix clippy errors 2021-07-30 15:36:01 +02:00
Quentin Gliech 0eddd715c8 move the CSRF save filter to crate::filters::csrf 2021-07-30 15:31:34 +02:00
Quentin Gliech 490f97abb7 update dependencies 2021-07-30 15:21:11 +02:00
Quentin Gliech 0499d1a47f migrate to warp, last part 2021-07-30 15:19:30 +02:00
Quentin Gliech d36069e0fe WIP: migrate to warp, part 3 2021-07-29 16:58:26 +02:00
Quentin Gliech dc049e96a8 WIP: migrate to warp, part 2 2021-07-29 14:56:33 +02:00
Quentin Gliech df68f0e2c0 WIP: migrate to warp 2021-07-27 19:20:24 +02:00
Quentin Gliech 69797c711e reimplement CSRF logic 2021-07-27 14:25:15 +02:00
Quentin Gliech 865d5851db oauth2-types: PKCE-related types 2021-07-25 20:11:09 +02:00
Quentin Gliech b149760455 properly save session with multiple auth
This will help knowing when the user last authed, support MFA & other
login types, support acr_values & max_time, etc.
2021-07-25 14:42:48 +02:00
Quentin Gliech e907b99db7 rework OIDC metadata endpoint 2021-07-22 16:01:55 +02:00
Quentin Gliech 1b3784840c replace custom serde types with serde_with in oauth2-types 2021-07-22 14:38:14 +02:00
Quentin Gliech f8184f4026 enable std feature in password-hash to avoid manually building errors 2021-07-17 11:21:58 +02:00
Quentin Gliech d9806e35b1 store users in database 2021-07-17 00:49:25 +02:00
Quentin Gliech 0abb8b9505 fix CI by removing the --offline flag from rustfmt 2021-07-16 23:22:17 +02:00
Quentin Gliech 36333ae0ab fix dependencies fetching in CI 2021-07-16 23:19:03 +02:00
Quentin Gliech 219b2eea06 cache Cargo dependencies per OS in CI 2021-07-16 23:16:21 +02:00
Quentin Gliech e8f8c1e7f0 run Cargo in offline mode in CI 2021-07-16 23:04:13 +02:00
Quentin Gliech 444d356000 Retry downloading dependencies twice in CI 2021-07-16 22:55:26 +02:00
Quentin Gliech 3664190ae4 better caching and dependencies fetching in CI 2021-07-16 22:52:00 +02:00
Quentin Gliech e472dd3692 add a subcommand to generate a config file 2021-07-16 18:55:33 +02:00
Quentin Gliech 4208fa725f make client storage read-only 2021-07-16 18:04:43 +02:00
Quentin Gliech 44718c64a8 fix some license headers 2021-07-16 18:04:04 +02:00
Quentin Gliech 563255e103 reorganize dependencies and upgrade them 2021-07-16 17:47:44 +02:00
Quentin Gliech 758fcd4f4b partial config load & tests 2021-07-16 17:33:16 +02:00
Quentin Gliech a3b9e3861a split CLI in multiple commands
- `config` to view & check config files
 - `database` for DB-related ops
 - `server` to run the server
2021-07-16 14:34:18 +02:00
Quentin Gliech 99142c3536 initial config schema 2021-07-16 11:19:03 +02:00
Quentin Gliech e24734260a ci: tweak cache keys 2021-07-10 00:10:22 +02:00
Quentin Gliech 30d4f4cf5b ci: disable fail-fast on test job 2021-07-10 00:05:34 +02:00
Quentin Gliech a7d543acfc Also setup cache on rustfmt job in CI 2021-07-10 00:01:39 +02:00
Quentin Gliech 575b305640 Cache dependencies in CI 2021-07-09 23:56:35 +02:00
Quentin Gliech ac928b2515 save sessions in database 2021-07-09 22:49:23 +02:00