Skip to content

Commit 36f6c1d

Browse files
authored
Handle preparation of helper web page links e.g. on dev/test sites (#103)
Handle preparation of web front page links like `security.txt` and `site-privacy-policy.pdf` by inserting symlinks to `EMULATE_FQDN` version in the cases where no site `FQDN` version is readily available. This is common on dev/test sites and they are fine with just using the emulated default. Added test script to verify these links are actually in place in running instance.
2 parents d9088b4 + 34ada79 commit 36f6c1d

File tree

5 files changed

+104
-0
lines changed

5 files changed

+104
-0
lines changed

Dockerfile.centos7

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1526,6 +1526,31 @@ RUN ln -s index-${DOMAIN}.html $MIG_ROOT/state/wwwpublic/index.html && \
15261526
$MIG_ROOT/state/wwwpublic/.well-known/security-pub-keys.txt && \
15271527
ln -s security-disclosure-policy-${DOMAIN}.txt \
15281528
$MIG_ROOT/state/wwwpublic/.well-known/security-disclosure-policy.txt && \
1529+
# Reuse site helpers from EMULATE_FQDN if no site versions exist
1530+
if [ ! -e "$MIG_ROOT/state/wwwpublic/cookie-policy-${DOMAIN}.pdf" ]; then \
1531+
ln -s cookie-policy-${EMULATE_FQDN}.pdf \
1532+
$MIG_ROOT/state/wwwpublic/cookie-policy-${DOMAIN}.pdf ; \
1533+
fi && \
1534+
if [ ! -e "$MIG_ROOT/state/wwwpublic/site-privacy-policy-${DOMAIN}.pdf" ]; then \
1535+
ln -s site-privacy-policy-${EMULATE_FQDN}.pdf \
1536+
$MIG_ROOT/state/wwwpublic/site-privacy-policy-${DOMAIN}.pdf ; \
1537+
fi && \
1538+
if [ ! -e "$MIG_ROOT/state/wwwpublic/.well-known/security-${DOMAIN}.txt" ]; then \
1539+
ln -s security-${EMULATE_FQDN}.txt \
1540+
$MIG_ROOT/state/wwwpublic/.well-known/security-${DOMAIN}.txt ; \
1541+
fi && \
1542+
if [ ! -e "$MIG_ROOT/state/wwwpublic/.well-known/security-${DOMAIN}.txt.asc" ]; then \
1543+
ln -s security-${EMULATE_FQDN}.txt.asc \
1544+
$MIG_ROOT/state/wwwpublic/.well-known/security-${DOMAIN}.txt.asc ; \
1545+
fi && \
1546+
if [ ! -e "$MIG_ROOT/state/wwwpublic/.well-known/security-pub-keys-${DOMAIN}.txt" ]; then \
1547+
ln -s security-pub-keys-${EMULATE_FQDN}.txt \
1548+
$MIG_ROOT/state/wwwpublic/.well-known/security-pub-keys-${DOMAIN}.txt ; \
1549+
fi && \
1550+
if [ ! -e "$MIG_ROOT/state/wwwpublic/.well-known/security-disclosure-policy-${DOMAIN}.txt" ]; then \
1551+
ln -s security-disclosure-policy-${EMULATE_FQDN}.txt \
1552+
$MIG_ROOT/state/wwwpublic/.well-known/security-disclosure-policy-${DOMAIN}.txt ; \
1553+
fi && \
15291554
chown -R $USER:$GROUP $MIG_ROOT/state/wwwpublic/*.html
15301555

15311556
# TODO: improve this very crude and hard-coded translation

Dockerfile.rocky8

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1550,6 +1550,31 @@ RUN ln -s index-${DOMAIN}.html $MIG_ROOT/state/wwwpublic/index.html && \
15501550
$MIG_ROOT/state/wwwpublic/.well-known/security-pub-keys.txt && \
15511551
ln -s security-disclosure-policy-${DOMAIN}.txt \
15521552
$MIG_ROOT/state/wwwpublic/.well-known/security-disclosure-policy.txt && \
1553+
# Reuse site helpers from EMULATE_FQDN if no site versions exist
1554+
if [ ! -e "$MIG_ROOT/state/wwwpublic/cookie-policy-${DOMAIN}.pdf" ]; then \
1555+
ln -s cookie-policy-${EMULATE_FQDN}.pdf \
1556+
$MIG_ROOT/state/wwwpublic/cookie-policy-${DOMAIN}.pdf ; \
1557+
fi && \
1558+
if [ ! -e "$MIG_ROOT/state/wwwpublic/site-privacy-policy-${DOMAIN}.pdf" ]; then \
1559+
ln -s site-privacy-policy-${EMULATE_FQDN}.pdf \
1560+
$MIG_ROOT/state/wwwpublic/site-privacy-policy-${DOMAIN}.pdf ; \
1561+
fi && \
1562+
if [ ! -e "$MIG_ROOT/state/wwwpublic/.well-known/security-${DOMAIN}.txt" ]; then \
1563+
ln -s security-${EMULATE_FQDN}.txt \
1564+
$MIG_ROOT/state/wwwpublic/.well-known/security-${DOMAIN}.txt ; \
1565+
fi && \
1566+
if [ ! -e "$MIG_ROOT/state/wwwpublic/.well-known/security-${DOMAIN}.txt.asc" ]; then \
1567+
ln -s security-${EMULATE_FQDN}.txt.asc \
1568+
$MIG_ROOT/state/wwwpublic/.well-known/security-${DOMAIN}.txt.asc ; \
1569+
fi && \
1570+
if [ ! -e "$MIG_ROOT/state/wwwpublic/.well-known/security-pub-keys-${DOMAIN}.txt" ]; then \
1571+
ln -s security-pub-keys-${EMULATE_FQDN}.txt \
1572+
$MIG_ROOT/state/wwwpublic/.well-known/security-pub-keys-${DOMAIN}.txt ; \
1573+
fi && \
1574+
if [ ! -e "$MIG_ROOT/state/wwwpublic/.well-known/security-disclosure-policy-${DOMAIN}.txt" ]; then \
1575+
ln -s security-disclosure-policy-${EMULATE_FQDN}.txt \
1576+
$MIG_ROOT/state/wwwpublic/.well-known/security-disclosure-policy-${DOMAIN}.txt ; \
1577+
fi && \
15531578
chown -R $USER:$GROUP $MIG_ROOT/state/wwwpublic/*.html
15541579

15551580
# TODO: improve this very crude and hard-coded translation

Dockerfile.rocky9

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1424,6 +1424,31 @@ RUN ln -s index-${DOMAIN}.html $MIG_ROOT/state/wwwpublic/index.html && \
14241424
$MIG_ROOT/state/wwwpublic/.well-known/security-pub-keys.txt && \
14251425
ln -s security-disclosure-policy-${DOMAIN}.txt \
14261426
$MIG_ROOT/state/wwwpublic/.well-known/security-disclosure-policy.txt && \
1427+
# Reuse site helpers from EMULATE_FQDN if no site versions exist
1428+
if [ ! -e "$MIG_ROOT/state/wwwpublic/cookie-policy-${DOMAIN}.pdf" ]; then \
1429+
ln -s cookie-policy-${EMULATE_FQDN}.pdf \
1430+
$MIG_ROOT/state/wwwpublic/cookie-policy-${DOMAIN}.pdf ; \
1431+
fi && \
1432+
if [ ! -e "$MIG_ROOT/state/wwwpublic/site-privacy-policy-${DOMAIN}.pdf" ]; then \
1433+
ln -s site-privacy-policy-${EMULATE_FQDN}.pdf \
1434+
$MIG_ROOT/state/wwwpublic/site-privacy-policy-${DOMAIN}.pdf ; \
1435+
fi && \
1436+
if [ ! -e "$MIG_ROOT/state/wwwpublic/.well-known/security-${DOMAIN}.txt" ]; then \
1437+
ln -s security-${EMULATE_FQDN}.txt \
1438+
$MIG_ROOT/state/wwwpublic/.well-known/security-${DOMAIN}.txt ; \
1439+
fi && \
1440+
if [ ! -e "$MIG_ROOT/state/wwwpublic/.well-known/security-${DOMAIN}.txt.asc" ]; then \
1441+
ln -s security-${EMULATE_FQDN}.txt.asc \
1442+
$MIG_ROOT/state/wwwpublic/.well-known/security-${DOMAIN}.txt.asc ; \
1443+
fi && \
1444+
if [ ! -e "$MIG_ROOT/state/wwwpublic/.well-known/security-pub-keys-${DOMAIN}.txt" ]; then \
1445+
ln -s security-pub-keys-${EMULATE_FQDN}.txt \
1446+
$MIG_ROOT/state/wwwpublic/.well-known/security-pub-keys-${DOMAIN}.txt ; \
1447+
fi && \
1448+
if [ ! -e "$MIG_ROOT/state/wwwpublic/.well-known/security-disclosure-policy-${DOMAIN}.txt" ]; then \
1449+
ln -s security-disclosure-policy-${EMULATE_FQDN}.txt \
1450+
$MIG_ROOT/state/wwwpublic/.well-known/security-disclosure-policy-${DOMAIN}.txt ; \
1451+
fi && \
14271452
chown -R $USER:$GROUP $MIG_ROOT/state/wwwpublic/*.html
14281453

14291454
# TODO: improve this very crude and hard-coded translation
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#!/bin/bash
2+
3+
source default
4+
5+
function check_web() {
6+
URL="$1"
7+
${DOCKER:?} run --rm --network host --dns 127.0.0.1 curlimages/curl:8.7.1 \
8+
--connect-timeout 1 \
9+
--retry-connrefused \
10+
--retry 3 \
11+
-k \
12+
-s \
13+
-v \
14+
--fail \
15+
-o /dev/null \
16+
-sw 'HTTP status code: %{http_code}\n' \
17+
${URL} \
18+
> $(basename "$0").log 2>&1
19+
return $?
20+
}
21+
22+
status=0
23+
for PAGE in terms.html cookie-policy.pdf site-privacy-policy.pdf .well-known/security.txt .well-known/security-disclosure-policy.txt ; do
24+
check_web "https://${DOMAIN}:${PUBLIC_HTTPS_PORT}/${PAGE}"
25+
status=$(($status+$?))
26+
done
27+
28+
[[ "$status" == 0 ]] && echo -e "${GREEN}passed${ENDCOLOR}" && exit 0
29+
echo -e "${RED}failed${ENDCOLOR}" && exit 1
File renamed without changes.

0 commit comments

Comments
 (0)