Alessandro Ros and GitHub
a4ad182e4e
format imports ( #6041 )
2026-08-04 22:13:15 +00:00
Alessandro Ros and GitHub
ef93aee083
use black-box testing where possible ( #6016 )
2026-08-01 08:06:27 +00:00
Alessandro Ros and GitHub
4c5f558006
hls, webrtc: prevent cross-origin unauthorized access ( #5975 )
...
when a user had previously inserted credentials into a MediaMTX
instance through a browser, and AllowOrigins was set to a wildcard,
third-party websites visited by the user were allowed to read streams
without restrictions. This is now prevented by returning "*" in
Access-Control-Allow-Origins when AllowOrigins is a wildcard, a
behavior that prevents browsers from sharing credentials with
third-party websites.
2026-07-23 23:06:15 +02:00
Alessandro Ros and GitHub
58c6099e50
ask for credentials only in case of protocols that support it ( #5966 )
...
When clients connect with some protocols (SRT, RTMP), they are unable
to provide credentials even if they are asked to. In this case, it's
useless to wait for credentials, and it's better to immediately log
authentication errors and apply the anti-brute force algorithm.
2026-07-19 16:52:14 +02:00
Alessandro Ros and GitHub
e14ada6f4b
normalize authentication error messages ( #5421 ) ( #5959 )
...
Log authentication errors as soon as possible, use the "warn" level,
use the same message whatever the author or protocol.
2026-07-19 10:04:17 +02:00
Alessandro Ros and GitHub
f5d7ed3138
improve anti-brute force mechanism ( #5835 )
...
delay authentication failure responses by a random amount of time, use
the same anti-brute force mechanism with all users.
2026-06-05 17:01:36 +02:00
Alessandro Ros and GitHub
b5b63d02fc
support reading and publishing with Media-over-QUIC ( #5815 )
...
Media-over-QUIC is a streaming protocol built upon cutting edge
protocols (QUIC, HTTP3) and browser APIs (WebTransport, WebCodecs).
It's slightly faster than WebRTC, has an advanced data recovery
mechanism (placed at the frame level and not at the packet level), it
supports additional codecs (FLAC) and is less complicated to route.
2026-06-02 23:04:24 +02:00
Alessandro Ros and GitHub
c7826d406b
hls: return JSON with error message in case path conf is not available ( #5655 )
...
this behavior is aligned with WebRTC one.
2026-04-08 23:26:04 +02:00
Alessandro Ros and GitHub
f453b59cd6
improve listener labels ( #5635 )
...
add a label after every "listener opened on :XXX" message that mentions
protocols of every listener.
2026-04-03 16:35:31 +02:00
Alessandro Ros and GitHub
3bad7045c1
api: add missing enums and move all enums in dedicated components ( #5576 )
2026-03-15 22:09:00 +01:00
Alessandro Ros and GitHub
d1fd3df27c
api: add user field to RTSP, RTMP, SRT, WebRTC conns and sessions ( #5104 ) ( #5565 )
2026-03-14 00:03:58 +01:00
Alessandro Ros and GitHub
a6856e9e58
tests: fix race conditions ( #5571 )
2026-03-13 22:32:06 +01:00
Alessandro Ros and GitHub
35e1f486c9
add integrated packet dumper ( #5488 )
...
this allows to dump any incoming and outgoing packet, to disk, in
pcapng format.
2026-02-22 13:34:05 +01:00
bluenviron-bot and GitHub
ea6977d918
bump golangci-lint to 2.9.0 ( #5459 )
2026-02-12 15:18:02 +01:00
Alessandro Ros and GitHub
3de05c1330
api: always reply with JSON in case of success or failure ( #5252 )
...
Reply with "status": "ok" in case of success, and with "status":
"error" in case of error. This makes the API more accessible and user
friendly.
2025-12-07 10:37:55 +01:00
ade0cddeb3
support multiple CORS origins ( #5150 )
...
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com >
2025-11-21 02:00:46 +01:00
Alessandro Ros and GitHub
ff187b6d8a
update golangci-lint configuration ( #5182 )
2025-11-11 23:57:52 +01:00
Alessandro Ros and GitHub
7634370818
add read and write timeouts in HTTP servers ( #5056 )
...
this prevents zombie connections from piling up.
2025-10-04 10:01:21 +02:00
Alessandro Ros and GitHub
f987695d9d
rtsp: log authentication failure reason ( #4641 ) ( #5017 )
2025-09-23 10:18:13 +02:00
Alessandro Ros and GitHub
5240bcb8ff
log authentication errors of API, metrics, pprof ( #4641 ) ( #5015 )
2025-09-23 09:51:22 +02:00
Alessandro Ros and GitHub
b517631b8f
fix authentication failure reason not being displayed ( #5007 )
2025-09-22 09:48:51 +02:00
6ffa07e8e8
Add support for HTTP over unix sockets ( #4241 )
...
This adds support for using unix scheme in xxxAddress config options.
For example `hlsAddress: "unix://hls.sock"`.
---------
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com >
2025-08-03 12:30:26 +02:00
Alessandro Ros and GitHub
74bfb988d7
allow disabling JWT in HTTP query parameters ( #4518 )
2025-05-11 10:21:08 +02:00
Alessandro Ros and GitHub
f97213ae6e
support passing JWTs through the password field ( #4516 )
...
This is safer than passing JWTs through query parameters, unfortunately support is limited.
2025-05-10 22:54:24 +02:00
Alessandro Ros and GitHub
386be42784
rtsp: rewrite authentication around ServerConn.VerifyCredentials ( #4267 )
2025-02-18 17:54:13 +01:00
Alessandro Ros and GitHub
8f04264fe5
webrtxc: fix MTX_QUERY not set when reading or publishing ( #4138 ) ( #3937 ) ( #4141 )
2025-01-11 17:29:48 +01:00
Alessandro Ros and GitHub
b49acb1e00
accept durations expressed as days (i.e. '1d') ( #4094 )
2025-01-02 12:44:15 +01:00
Alessandro Ros and GitHub
1a6547f13b
restore pprof service ( #3848 ) ( #3851 )
2024-10-08 17:06:47 +02:00
Alessandro Ros and GitHub
457a47116a
pprof: fix required authentication action ( #3850 )
2024-10-08 17:06:17 +02:00
Alessandro Ros and GitHub
d13dc1074a
make better use of Gin middleware system ( #3849 )
2024-10-08 17:02:16 +02:00
Alessandro Ros and GitHub
534b637bc7
support using JWT in Authorization header with API, Metrics, PProf ( #3630 ) ( #3795 )
2024-10-05 21:15:21 +02:00
Alessandro Ros and GitHub
3f1d182d2c
fix support for HTTP preflight requests ( #1792 ) ( #3535 )
2024-07-06 21:45:15 +02:00
Alessandro Ros and GitHub
85dd81698b
support HTTPS, Allow-Origin and trusted proxies in API, playback server, metrics server and pprof server ( #2658 ) ( #2491 ) ( #3235 ) ( #3280 )
2024-04-21 17:10:35 +02:00
2bd8ac7e19
fix support for JWT authentication in API, metrics, playback, pprof ( #3253 )
...
Co-authored-by: Rafael Scheidt <rafaelscheidt@Rafaels-MacBook-Air.local >
Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com >
2024-04-18 23:55:48 +02:00
Alessandro Ros and GitHub
9c6ba7e2c7
New authentication system ( #1341 ) ( #1992 ) ( #2205 ) ( #3081 )
...
This is a new authentication system that covers all the features exposed by the server, including playback, API, metrics and PPROF, improves internal authentication by adding permissions, improves HTTP-based authentication by adding the ability to exclude certain actions from being authenticated, adds an additional method (JWT-based authentication).
2024-03-04 14:20:34 +01:00
Alessandro Ros and GitHub
3161e73a58
rename httpserv into httpp ( #3014 )
2024-02-13 13:04:56 +01:00
Alessandro Ros and GitHub
1341421412
move api, metrics and pprof into dedicated packages ( #2843 )
2023-12-26 13:41:15 +01:00
aler9 and Alessandro Ros
9062dbf883
move most components into internal/core
...
in this way coverage can be computed correctly.
2021-07-24 16:09:52 +02:00
aler9
99323ba740
update golangci-lint
2021-05-23 18:51:21 +02:00
aler9
a1a56ff203
allow to set a different listen IP for each listener ( #343 )
2021-04-24 18:52:13 +02:00
aler9
c40fdbae7c
pprof: change capitalization
2021-03-27 12:23:19 +01:00
aler9
a57f3d04a7
add parameter pprofPort to configure the port of the pprof listener
2021-03-27 12:19:00 +01:00
aler9
903842484e
apply listenIP to metrics and pprof too
2021-01-15 18:58:45 +01:00
aler9
74b592b211
implement log levels; print requests and responses when log level is "debug" ( #116 )
2020-12-08 12:21:06 +01:00
aler9
58fe1cfe77
add docs
2020-11-05 12:37:16 +01:00
aler9
5facab1a48
move subpackages into internal/
2020-11-01 22:56:56 +01:00