Merge pull request '7.84.12 — correctif : ShaarIt joignable depuis Flowdeck (CSP connect-src)' (#47) from fix/recherche-shaarit-csp into main
This commit was merged in pull request #47.
This commit is contained in:
@@ -178,10 +178,17 @@ class ContentSecurityPolicyMiddleware(BaseHTTPMiddleware):
|
|||||||
# notifications des applications soeurs depuis cet hôte ;
|
# notifications des applications soeurs depuis cet hôte ;
|
||||||
# leurs origines rejoignent connect-src (même résolution
|
# leurs origines rejoignent connect-src (même résolution
|
||||||
# draco_urls que les liens de la barre et frame-src).
|
# draco_urls que les liens de la barre et frame-src).
|
||||||
|
# Fusion #111 : la recherche fédérée appelle en plus
|
||||||
|
# l'API de ShaarIt depuis la page /recherche — sans son
|
||||||
|
# origine ici, le navigateur bloque l'appel et la section
|
||||||
|
# ShaarIt affichait « Injoignable depuis cet hôte (CORS ou
|
||||||
|
# réseau) » alors que le CORS de ShaarIt était correct
|
||||||
|
# (retour d'usage du 2026-11-04).
|
||||||
_toutes69 = draco_urls.toutes()
|
_toutes69 = draco_urls.toutes()
|
||||||
sisters = " ".join(sorted({
|
sisters = " ".join(sorted({
|
||||||
draco_urls.origine(_toutes69[k])
|
draco_urls.origine(_toutes69[k])
|
||||||
for k in ("obsigate", "flowdeck", "tiktak", "kanbante")
|
for k in ("obsigate", "flowdeck", "tiktak", "kanbante",
|
||||||
|
"shaarit")
|
||||||
} - {""}))
|
} - {""}))
|
||||||
response.headers[self.CSP_HEADER] = self.CSP_VALUE.format(
|
response.headers[self.CSP_HEADER] = self.CSP_VALUE.format(
|
||||||
nonce=nonce, host=host, agent=agent, sisters=sisters
|
nonce=nonce, host=host, agent=agent, sisters=sisters
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
"""Recherche fédérée « Rechercher partout » (fusion #111) — garde-fous
|
||||||
|
côté Flowdeck : l'API /api/search et les origines sœurs sont couvertes
|
||||||
|
par les suites Node et les tests CORS ; ici, la CSP des pages, qui
|
||||||
|
conditionne les appels cross-origin de la page /recherche."""
|
||||||
|
|
||||||
|
|
||||||
|
def test_csp_connect_src_contient_shaarit(client):
|
||||||
|
"""La CSP des pages doit autoriser l'origine de ShaarIt en
|
||||||
|
connect-src, sinon le navigateur bloque l'appel de la page
|
||||||
|
/recherche avant même le CORS et la section ShaarIt affiche
|
||||||
|
« Injoignable depuis cet hôte » (retour d'usage du 2026-11-04 :
|
||||||
|
la liste des sœurs du connect-src, écrite pour les Alertes
|
||||||
|
#69, n'avait pas été étendue à ShaarIt)."""
|
||||||
|
r = client.get("/")
|
||||||
|
csp = r.headers.get("content-security-policy", "")
|
||||||
|
assert "connect-src" in csp
|
||||||
|
assert "https://shaarit.dracodev.net" in csp, csp
|
||||||
Reference in New Issue
Block a user