Add CORS and OPTIONS handling for mtls-bridge panel actions
This commit is contained in:
@@ -16,6 +16,8 @@ Internal HTTP-to-mTLS bridge for services that cannot present client certificate
|
|||||||
- `CA_CERT` (default `/certs/ca.crt`): CA certificate bundle used to verify upstream TLS.
|
- `CA_CERT` (default `/certs/ca.crt`): CA certificate bundle used to verify upstream TLS.
|
||||||
- `TIMEOUT` (default `5`): request timeout in seconds.
|
- `TIMEOUT` (default `5`): request timeout in seconds.
|
||||||
- `LOG_LEVEL` (default `INFO`): Python logging level.
|
- `LOG_LEVEL` (default `INFO`): Python logging level.
|
||||||
|
- `MTLS_BRIDGE_BASIC_AUTH_USERS` (required for Traefik auth): value for `traefik.http.middlewares.*.basicauth.users` (e.g. `user:$$apr1$$...`).
|
||||||
|
- `MTLS_BRIDGE_CORS_ALLOW_ORIGIN` (default `https://grafana.lan.ddnsgeek.com`): origin allowed for browser-based panel actions.
|
||||||
|
|
||||||
## Endpoints
|
## Endpoints
|
||||||
|
|
||||||
|
|||||||
@@ -19,6 +19,19 @@ services:
|
|||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
- "traefik.http.routers.mtls-bridge.entrypoints=websecure"
|
- "traefik.http.routers.mtls-bridge.entrypoints=websecure"
|
||||||
- "traefik.http.routers.mtls-bridge.tls.certresolver=myresolver"
|
- "traefik.http.routers.mtls-bridge.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.routers.mtls-bridge.middlewares=mtls-bridge-auth,mtls-bridge-cors"
|
||||||
|
- "traefik.http.middlewares.mtls-bridge-auth.basicauth.users=${MTLS_BRIDGE_BASIC_AUTH_USERS}"
|
||||||
|
- "traefik.http.routers.mtls-bridge-preflight.rule=Host(`mtls-bridge.lan.ddnsgeek.com`) && Method(`OPTIONS`)"
|
||||||
|
- "traefik.http.routers.mtls-bridge-preflight.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.mtls-bridge-preflight.tls.certresolver=myresolver"
|
||||||
|
- "traefik.http.routers.mtls-bridge-preflight.middlewares=mtls-bridge-cors"
|
||||||
|
- "traefik.http.routers.mtls-bridge-preflight.priority=100"
|
||||||
|
- "traefik.http.routers.mtls-bridge-preflight.service=mtls-bridge"
|
||||||
|
- "traefik.http.middlewares.mtls-bridge-cors.headers.accesscontrolalloworiginlist=${MTLS_BRIDGE_CORS_ALLOW_ORIGIN:-https://grafana.lan.ddnsgeek.com}"
|
||||||
|
- "traefik.http.middlewares.mtls-bridge-cors.headers.accesscontrolallowmethods=GET,POST,PUT,PATCH,DELETE,OPTIONS"
|
||||||
|
- "traefik.http.middlewares.mtls-bridge-cors.headers.accesscontrolallowheaders=Authorization,Content-Type"
|
||||||
|
- "traefik.http.middlewares.mtls-bridge-cors.headers.accesscontrolallowcredentials=true"
|
||||||
|
- "traefik.http.middlewares.mtls-bridge-cors.headers.addvaryheader=true"
|
||||||
- "io.portainer.accesscontrol.public"
|
- "io.portainer.accesscontrol.public"
|
||||||
# - "traefik.http.routers.searxng.middlewares=crowdsec@file,secHeaders@file,error-pages-middleware"
|
# - "traefik.http.routers.searxng.middlewares=crowdsec@file,secHeaders@file,error-pages-middleware"
|
||||||
- "traefik.http.services.mtls-bridge.loadbalancer.server.port=8080"
|
- "traefik.http.services.mtls-bridge.loadbalancer.server.port=8080"
|
||||||
|
|||||||
Reference in New Issue
Block a user