Commit Graph

262 Commits

Author SHA1 Message Date
Anthony Rubick
f45d5f46b4 refactor(events): extract event system to own module and generalize subscriber handling 2025-08-24 18:46:03 -05:00
Anthony Rubick
d74ecb2444 fix: event deserialization 2025-08-19 19:09:50 -05:00
Anthony Rubick
fe2db92392 test: event deserialization 2025-08-19 19:09:50 -05:00
Anthony Rubick
d6c907b13f feat: add function to assist parsing events 2025-08-19 19:09:49 -05:00
Anthony Rubick
9c99f6c734 feat(plugins): Implement event system w/ POC events
Implements the partially created event system with 3 events implemented as proof of concepts.

The 3 events are:
- `blacklistedIpBlocked`: emitted when a request from a blacklisted IP
- `accessRuleCreated`: emitted when a new access rule is created
- `blacklistToggled`: emitted when the blacklist is toggled for a given access rule

Why these events? Because these are the ones I forsee myself needing in the next version of the zoraxy_crowdsec_bouncer

Events are dispatched via a global event manager `plugins.EventSystem.Emit`
2025-08-19 19:08:46 -05:00
Toby Chui
2daf3cd2cb Optimized plugin examples
- Fixed build script bug in plugin module copy logic
- Fixed plugin example typos
- Fixed the missing embeded web server handleFunc interface
2025-08-17 10:34:10 +08:00
Anthony Rubick
bd5d225a94 fix: out of bounds index when rewriting websocket headers 2025-08-01 02:12:50 -07:00
Anthony Rubick
be5f631b9f refactor: reuse PluginAuthMiddleware as AuthAgent for plugin accessible endpoints 2025-07-19 22:29:02 -07:00
Anthony Rubick
f9e51bfd27 remove unused functions 2025-07-19 22:23:19 -07:00
Anthony Rubick
39b5da36d9 refactor: partial revert of dd93f9a2c4 2025-07-19 22:23:19 -07:00
Anthony Rubick
ed8f9b7337 fix(plugin-auth): check both endpoint and method 2025-07-17 23:18:40 -07:00
Anthony Rubick
dd93f9a2c4 feat(plugins): Implement plugin API key management and authentication middleware
The purpose of this is to allow plugins to access certain internal APIs via

- Added PluginAPIKey and APIKeyManager for managing API keys associated with plugins.
- Introduced PluginAuthMiddleware to handle API key validation for plugin requests.
- Updated RouterDef to support plugin accessible endpoints with authentication.
- Modified various API registration functions to include plugin accessibility checks.
- Enhanced plugin lifecycle management to generate and revoke API keys as needed.
- Updated plugin specifications to include permitted API endpoints for access control.
2025-07-17 22:20:09 -07:00
Anthony Rubick
100c1e9c04 fix: typo in dynamic_router.go
SniffResultAccpet should be SniffResultAccept
2025-07-15 22:05:06 -07:00
Toby Chui
4d3d1b25cb Restructure TLS options
- Moved certification related functions into tlscert module
- Added specific host TLS behavior logic
- Added support for disabling SNI and manually overwrite preferred certificate to serve
- Fixed SSO requestHeaders null bug
2025-07-12 19:30:55 +08:00
Toby Chui
118b5e5114 Merge pull request #723 from 7brend7/fix-empty-sso-advanced-params
fix empty sso advanced parameters
2025-07-08 19:00:25 +08:00
Toby Chui
ad53b894c0 Update src/mod/auth/sso/forward/forward.go
Co-authored-by: James Elliott <james-d-elliott@users.noreply.github.com>
2025-07-08 12:38:08 +08:00
Toby Chui
45506c8772 Added cert resolve viewer
- Added certificate resolve viewer on HTTP proxy rule editor
- Exposed SNI options (wip)
- Code optimize
2025-07-07 14:18:10 +08:00
Toby Chui
c091b9d1ca Added content security policy structure
- Added content security policy header generators structure (current not in used)
2025-07-07 13:25:07 +08:00
Borys Anikiyenko
e225407b03 fix empty sso advanced parameters 2025-07-06 22:25:17 +03:00
jemmy1794
6b3b89f7bf Add EnableLogging to Stream Proxy for log control
- Add `EnableLogging` to control TCP/UDP Connection logs to reduce log latency.
- Add `Enable Logging` Option in Stream Proxy rule.
- Update Stream Proxy UI.
2025-07-03 09:01:46 +08:00
Toby Chui
2d611a559a Optimized structure for stream proxy
- Separated instance and config for stream proxy
2025-07-02 21:03:57 +08:00
Jemmy
f92ff068f3 Added Proxy Protocol V1 to Stream Proxy UI
- Added a checkbox for Proxy Protocol V1.
- Modified related Config setting function.
2025-07-02 18:04:26 +08:00
Jemmy
b59ac47c8c Added Proxy Protocol V1 function.
- Added useProxyProtocol in ProxyRelayConfig
- Added writeProxyProtocolHeaderV1 function
2025-07-02 17:58:26 +08:00
Toby Chui
8030f3d62a Fixed #688
- Added auto restart after config change in static web server
2025-06-30 20:34:42 +08:00
Jemmy
f6b3656bb1 Fix: #659
Listen UDP port on (0.0.0.0)* address.
2025-06-24 13:10:58 +08:00
Toby Chui
f276040ad0 Added experimental fix for #695
Added prefix trim and location filter for oauth authrozied redirection
2025-06-16 21:21:50 +08:00
Toby Chui
0b6dbd49bb Fixed #694
- Uncommented the delete proxy rule button
- Added redirection path escape in dpcore
2025-06-16 20:16:36 +08:00
Toby Chui
38cfab4a09 Merge pull request #692 from james-d-elliott/feat-forward-auth-improvements
feat(sso): forward auth improvements
2025-06-15 14:50:29 +08:00
Toby Chui
4a37a989a0 Added Disable Chunk Transfer Encoding option
- Added disable chunk transfer encoding on UI #685
- Added optional to disable static web server listen to all interface #688
2025-06-15 13:46:35 +08:00
James Elliott
eb540b774d refactor: factorize 500 errors
This just factorizes the handling of 500 Internal Server Errors.
2025-06-15 12:14:14 +10:00
James Elliott
26d03f9ad4 feat(sso): forward auth improvements
This adds a couple of key improvements to the Forward Auth SSO implementation. Primarily it adds an included cookies setting which allows filtering cookies to the authorization server. Secondly it fixes a bug where the headerCopyIncluded function was case-sensitive. Documentation in the code and on the web UI is clearer to resolve some common questions and issues. Lastly it moves a lot of funcs to the util.go file and adds fairly comprehensive tests.
2025-06-15 11:57:38 +10:00
Toby Chui
0e74ff69c3 Fixed build error after merge
- Fixed buid error in new merge for Oauth2
- Updated version no.
- Optimized css in sso page
2025-06-07 12:20:09 +08:00
Toby Chui
8cb47e19fa Merge branch 'main' of https://github.com/kjagosz/zoraxy into v3.2.3 2025-06-07 12:08:23 +08:00
Toby Chui
9d2b8f224c Merge pull request #671 from tobychui/v3.2.2
- Merged in forward-auth implementation
- Added upgrader for v3.2.1 to v3.2.2
2025-05-20 20:01:30 +08:00
Toby Chui
877692695e Added #653
- Added dev mode plugin auto-reload
- Optimized struct in plugin manager options
2025-05-11 14:02:07 +08:00
Toby Chui
b9c609e413 Added upgrader for forward-auth
- Added v3.2.1 to v3.2.2 upgrader for new forward auth logic
- Optimized css in sso html page
2025-05-10 22:57:13 +08:00
Toby Chui
b1824a66a3 Merge pull request #643 from eyerrock/refactor-docker-container-list
refactor: docker container list
2025-04-30 07:21:51 +08:00
Krzysztof Jagosz
e2882b6436 Some cleanup for unused things 2025-04-29 14:46:18 +02:00
Krzysztof Jagosz
61b873451f Added OAuth2 support for SSO 2025-04-29 01:05:48 +02:00
Toby Chui
70d95bd4e4 Fixed build in start.go
- Fixed build error in start.go
- Moved authelia and authentik implementation to deprecated folder for reference purpose
2025-04-27 19:24:15 +08:00
James Elliott
b25f8aab3e refactor: apply suggestions 2025-04-27 20:27:46 +10:00
James Elliott
c0578a33b6 fix: copy paste error 2025-04-27 20:27:26 +10:00
James Elliott
55a525106a fix: value not set 2025-04-27 20:27:26 +10:00
James Elliott
e3b68b9aad fix: copy paste error 2025-04-27 20:27:26 +10:00
James Elliott
3f1c50c009 feat: forward auth
Add support for request headers and response client headers.
2025-04-27 20:27:26 +10:00
James Elliott
8f046a0b47 feat: forward auth
This adds basic support for forwarded authentication similar to caddy and traefik. This replaces Authelia SSO as it effectively covers exactly the same use cases.
2025-04-27 20:27:23 +10:00
Tim Dreyer
73e6530862 fix: docker api client version negotiation 2025-04-25 15:49:04 +02:00
Toby Chui
ffc67ede12 Added working plugin store prototype
- Added plugin install and remove api
2025-04-24 21:19:16 +08:00
Toby Chui
6750c7fe3d Added wip plugin store
- Added plugin store snippet
- Added plugin list sync functions
- Work in progress install / uninstall plugin function
2025-04-22 07:15:30 +08:00
Toby Chui
36c2c9a00e Merge pull request #641 from james-d-elliott/fix-authelia-headers
fix(authelia): original headers
2025-04-21 18:56:28 +08:00