Skip to content

Commit 2438887

Browse files
chrisburrweb-flow
authored andcommitted
sweep: #6445 Only use X- headers if /WebApp/Balancer is defined
1 parent 5c453b3 commit 2438887

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

src/DIRAC/Core/Tornado/Server/private/BaseRequestHandler.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -728,13 +728,17 @@ def _authzSSL(self):
728728
# If 'IOStream' object has no attribute 'get_ssl_certificate'
729729
derCert = None
730730

731+
# Boolean whether we are behind a balancer and can trust headers
732+
balancer = gConfig.getValue("/WebApp/Balancer", "none") != "none"
733+
731734
# Get client certificate as pem
732735
if derCert:
733736
chainAsText = derCert.as_pem().decode("ascii")
734737
# Read all certificate chain
735738
chainAsText += "".join([cert.as_pem().decode("ascii") for cert in self.request.get_ssl_certificate_chain()])
736-
elif self.request.headers.get("X-Ssl_client_verify") == "SUCCESS" and self.request.headers.get("X-SSL-CERT"):
737-
chainAsText = unquote(self.request.headers.get("X-SSL-CERT"))
739+
elif balancer:
740+
if self.request.headers.get("X-Ssl_client_verify") == "SUCCESS" and self.request.headers.get("X-SSL-CERT"):
741+
chainAsText = unquote(self.request.headers.get("X-SSL-CERT"))
738742
else:
739743
return S_ERROR(DErrno.ECERTFIND, "Valid certificate not found.")
740744

0 commit comments

Comments
 (0)