Skip to content

Commit af84f6d

Browse files
committed
mgr/cephadm: adding spec fields for oauth2-proxy whitelist_domains
this field is needed in order to configure which domains are allowed for redirection during login and/or logout Fixes: https://tracker.ceph.com/issues/67934 Signed-off-by: Redouane Kachach <[email protected]>
1 parent 4ee8e59 commit af84f6d

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

src/pybind/mgr/cephadm/services/oauth2_proxy.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,12 @@ def generate_random_secret(self) -> str:
6767
def generate_config(self, daemon_spec: CephadmDaemonDeploySpec) -> Tuple[Dict[str, Any], List[str]]:
6868
assert self.TYPE == daemon_spec.daemon_type
6969
svc_spec = cast(OAuth2ProxySpec, self.mgr.spec_store[daemon_spec.service_name].spec)
70+
whitelist_domains = svc_spec.whitelist_domains or []
71+
whitelist_domains += self.get_service_ips_and_hosts('mgmt-gateway')
7072
context = {
7173
'spec': svc_spec,
7274
'cookie_secret': svc_spec.cookie_secret or self.generate_random_secret(),
73-
'whitelist_domains': self.get_service_ips_and_hosts('mgmt-gateway'),
75+
'whitelist_domains': whitelist_domains,
7476
'redirect_url': svc_spec.redirect_url or self.get_redirect_url()
7577
}
7678

src/python-common/ceph/deployment/service_spec.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1920,6 +1920,7 @@ def __init__(self,
19201920
cookie_secret: Optional[str] = None,
19211921
ssl_certificate: Optional[str] = None,
19221922
ssl_certificate_key: Optional[str] = None,
1923+
whitelist_domains: Optional[List[str]] = None,
19231924
unmanaged: bool = False,
19241925
extra_container_args: Optional[GeneralArgList] = None,
19251926
extra_entrypoint_args: Optional[GeneralArgList] = None,
@@ -1955,6 +1956,9 @@ def __init__(self,
19551956
self.ssl_certificate = ssl_certificate
19561957
#: The multi-line SSL certificate private key for decrypting communications.
19571958
self.ssl_certificate_key = ssl_certificate_key
1959+
#: List of allowed domains for safe redirection after login or logout,
1960+
# preventing unauthorized redirects.
1961+
self.whitelist_domains = whitelist_domains
19581962
self.unmanaged = unmanaged
19591963

19601964
def get_port_start(self) -> List[int]:

0 commit comments

Comments
 (0)