1
Fork 0
Commit Graph

72 Commits

Author SHA1 Message Date
Juliusz Chroboczek 3e5b5c3033 Remove left over debugging message. 2024-06-08 14:34:51 +02:00
Juliusz Chroboczek a76f225bc0 Implement command /identify. 2024-05-01 23:38:31 +02:00
Juliusz Chroboczek 3409f5a27f Replace uses of os.IsExist and os.IsNotExist with errors.Is.
The former don't properly unwrap errors.
2024-04-14 13:34:32 +02:00
Juliusz Chroboczek 31f89163a2 Simplify server startup.
We now create the server and the listener in the calling thread,
and only create a new goroutine before calling server.Serve.
2024-04-14 02:12:46 +02:00
Juliusz Chroboczek f646191e01 Implement methodNotAllowed. 2024-04-10 14:44:03 +02:00
Juliusz Chroboczek b7094fc373 Beginnings of administrative API.
The "stats.json" file is moved under "galene-api", where the rest
of the API will live.
2024-04-09 22:49:03 +02:00
Juliusz Chroboczek d887a216f0 Rework configuration file format.
The "users" entry is now a dictionary mapping user names to
passwords and permissions.  In order to allow for wildcards,
there is a new type of password, the wildcard password, and
an extra array called "fallback-users".

The field "allow-anonymous" no longer exists, this is now
the default behaviour.  The field "allow-subgroups" has been
renamed to "auto-subgroups".

We provide backwards compatibility for group definition files,
but not for the config.json file, where the old "admin" array
is simply ignored.
2024-04-09 22:49:03 +02:00
Juliusz Chroboczek 89f947df1f Rework handling of authorisation errors.
We'd sometimes return "Internal server error" on authentication
failures.  This should be gone now.
2024-03-03 13:43:50 +01:00
Juliusz Chroboczek 29e006037c Allow proxyURL to contain a path.
We now support or reasonable values for proxyURL, such as "http:"
or "/galene".
2024-02-24 12:46:30 +01:00
Juliusz Chroboczek 0f53bf0373 More tweaks to webserver error handling. 2024-01-18 01:02:56 +01:00
Juliusz Chroboczek 3ad6f27b17 Move .status.json to .status.
Keep a redirect for backwards compatibility.
2024-01-18 00:39:32 +01:00
Juliusz Chroboczek b92cf0480a Implement splitPath.
Use it for parsing special paths instead of ad hoc code.
2024-01-17 22:28:21 +01:00
Juliusz Chroboczek 6455ae3a4c Fix error handling in groupBase. 2024-01-17 22:22:47 +01:00
Juliusz Chroboczek a612e4d869 Use httpError in groupHandler. 2024-01-11 23:10:15 +01:00
Juliusz Chroboczek bee1c3d0c3 Use url.JoinPath in webserver. 2023-12-09 17:40:04 +01:00
Juliusz Chroboczek 1f3b349ea2 Use MaxBytesReader in whip. 2023-12-09 16:17:48 +01:00
Juliusz Chroboczek 1e050fa4e3 Implement the WHIP protocol. 2023-07-11 17:25:58 +02:00
Juliusz Chroboczek 90e2de0b2d Add configuration option publicServer. 2023-07-10 23:59:24 +02:00
Juliusz Chroboczek aa53b78b2c Distinguish between no username and empty username. 2023-04-03 22:58:38 +02:00
Alexandre Iooss 02e7c7e824 Add Referrer-Policy and X-Content-Type-Options headers 2023-04-01 15:32:23 +02:00
Juliusz Chroboczek be0f05dac8 Fix incorrect formatting of error message. 2022-10-21 19:05:37 +02:00
Juliusz Chroboczek 10c57c7596 Don't use url.JoinPath.
It was introduced in Go 1.19.
2022-10-21 19:03:42 +02:00
Juliusz Chroboczek 16e2888d56 Add new configuration directive proxyURL.
The strategy of computing the base URL from the request doesn't
necessarily work if we're behind a reverse proxy.  proxyURL
can be set in cases where our guess is incorrect.

Thanks to Dianne Skoll.
2022-10-21 13:28:11 +02:00
Juliusz Chroboczek 31ed146a95 Fix computation of group URL in webserver.
We were computing the scheme incorrectly, which caused us
to compute the wrong websocket URL when -insecure is set.
Thanks to Fabien de Montgolfier.
2022-10-09 12:37:13 +02:00
Juliusz Chroboczek 6bdcd504a7 Make GetPermission a method of Group. 2022-09-08 20:55:35 +02:00
Juliusz Chroboczek b55e531aa5 Encode group location in the status.json file. 2022-09-01 15:38:29 +02:00
Juliusz Chroboczek 4bc873a574 Publish websocket endpoint in group status. 2022-09-01 14:55:52 +02:00
Juliusz Chroboczek dcb370677f Allow running the web server on a Unix domain socket.
Thanks to Martin Pépin.
2022-08-04 18:36:07 +02:00
Juliusz Chroboczek fc9f28fd68 Minor cleanups. 2022-04-23 18:43:01 +02:00
Juliusz Chroboczek de3a016f4d Set the username in the server when using tokens.
This avoids the need to pass the username in the URL without
requiring the client to parse tokens.
2022-02-20 15:33:11 +01:00
Juliusz Chroboczek a86fb08f6c Replace ClientPermissions with a list of strings.
Now that we support external auth, the permissions list is
open-ended.  Make it a list for simplicity.
2022-02-19 23:44:57 +01:00
Juliusz Chroboczek 03811db37d Implement token authentication. 2022-02-18 13:35:17 +01:00
Juliusz Chroboczek d2dff184d1 Move fontawesome to external, upgrade to 6.0.0. 2022-02-16 19:24:32 +01:00
Juliusz Chroboczek 62fb6d853c Move toastify into separate dir, upgrade. 2022-02-16 18:56:21 +01:00
Juliusz Chroboczek 24187430e8 Rename client status to data, add group data.
We now distinguish between status, which is maintained by the server,
and data, which is provided by the client.  In addition to client data,
we now support group data.
2022-01-29 23:28:08 +01:00
Juliusz Chroboczek 5c2e27b21d Rename mungeHeader to cspHeader. 2021-11-06 00:07:18 +01:00
Juliusz Chroboczek c00f84bd9d Fix typo in handling of redirects. 2021-10-30 19:25:18 +02:00
Juliusz Chroboczek c7c3c9c6b0 Export group status in .status.json. 2021-10-30 19:12:06 +02:00
Juliusz Chroboczek 5e39c3a2a7 Move -redirect into the configuration file. 2021-10-30 18:54:39 +02:00
Juliusz Chroboczek c0b30c8557 Move administrator password to data/config.json. 2021-10-30 18:54:39 +02:00
Juliusz Chroboczek 019f365981 Remove accessors for group description fields.
Consult the description directly.
2021-10-30 18:34:35 +02:00
Juliusz Chroboczek 8c21ede9d2 Don't allow group names to start with a period. 2021-10-28 20:01:11 +02:00
Juliusz Chroboczek d440cdf898 Don't redirect inexistent groups. 2021-10-28 19:55:40 +02:00
Juliusz Chroboczek 869eb9b839 Move password checking into group.go.
It used to be delegated to clients.
2021-10-27 04:15:44 +02:00
Juliusz Chroboczek de7dc9252f Use /group/name/ as the main page for the group.
We used to omit the slash, which users found confusing.
2021-10-26 19:36:05 +02:00
Juliusz Chroboczek c860fb96a3 Move server shutdown into group.go. 2021-09-11 15:42:14 +02:00
Juliusz Chroboczek f1a8f2a307 Normalise recordings URLs. 2021-08-23 20:41:24 +02:00
Juliusz Chroboczek f837c59d60 Move certificate handling into a separate module. 2021-08-20 01:20:57 +02:00
Juliusz Chroboczek 10becd3828 Minor tweaks to web server. 2021-08-18 18:30:45 +02:00
Juliusz Chroboczek 86b6c71ca0 Reformat stats display, protect against division by zero. 2021-05-07 02:23:10 +02:00