所以我试图向应用程序添加基本身份验证,但仅适用于 /admin/ 和 /admin/.*。
我正在使用带有 traefik 标签的 docker(-compose) 。到目前为止,我有闲置:
labels:
- traefik.enable=true
- traefik.port=8080
- traefik.docker.network=proxy
- traefik.app_admin.frontend.rule=Host:app.test;Path:/admin
- traefik.app_admin.frontend.auth.basic=dev:password
- traefik.app_frontend.frontend.rule=Host:app.test
Run Code Online (Sandbox Code Playgroud)
我想要实现的目标(以及我对上述内容的期望):
一个(未)认证的用户应该能够访问app.test. 当用户浏览到app.test/admin,app.test/admin/,app.test/admin/#/或app.test/admin/not/existing/path。它应该提示(要求)基本的身份验证凭据。
我不确定是否使用了正确的规则。这有点令人困惑(有 Path、PathPrefix,这些可以带或不带*前缀使用)。
我没想到的一件事是转到不存在的路径,例如app.test/admin/foobar/返回404-code 而不是首先提示输入凭据。
还有一种方法可以组合标签,并且还需要对所有包含(以)的请求进行基本身份验证app.test/api/。
编辑:
我得到它的工作:
- traefik.app_admin.frontend.rule=Host:app.test;PathPrefix:/admin
- traefik.app_admin.frontend.auth.basic=dev:$$2y$$05$$3Zmx7gYh6mBIIm8O9HTR2uDkoYoRbTMfZpKup5NhmioKrU1YKgmqC
- traefik.app_api.frontend.rule=Host:app.test;PathPrefix:/api
- traefik.app_api.frontend.auth.basic=dev:$$2y$$05$$3Zmx7gYh6mBIIm8O9HTR2uDkoYoRbTMfZpKup5NhmioKrU1YKgmqC
- traefik.app_frontend.frontend.rule=Host:app.test
Run Code Online (Sandbox Code Playgroud)
(用户名:dev 密码:password)
仍然想知道是否有更紧凑的方法来做到这一点。我可能只是使用 traefik.toml 代替。
| 归档时间: |
|
| 查看次数: |
1037 次 |
| 最近记录: |