mirror of
https://github.com/YunoHost-Apps/nextcloud_ynh.git
synced 2024-09-03 19:55:57 +02:00
[fix] Improve how .well-known path is checked
This commit is contained in:
parent
a6212bd4b0
commit
cc21dc5fa3
3 changed files with 15 additions and 10 deletions
|
@ -71,3 +71,12 @@ exec_occ() {
|
||||||
(cd "$WORKDIR" && exec_as "$AS_USER" \
|
(cd "$WORKDIR" && exec_as "$AS_USER" \
|
||||||
php occ --no-interaction --no-ansi "$@")
|
php occ --no-interaction --no-ansi "$@")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Check if an URL is already handled
|
||||||
|
# usage: is_url_handled URL
|
||||||
|
is_url_handled() {
|
||||||
|
local OUTPUT=($(curl -k -s -o /dev/null \
|
||||||
|
-w 'x%{redirect_url} %{http_code}' "$1"))
|
||||||
|
# it's handled if it does not redirect to the SSO nor return 404
|
||||||
|
[[ ! ${OUTPUT[0]} =~ \/yunohost\/sso\/ && ${OUTPUT[1]} != 404 ]]
|
||||||
|
}
|
||||||
|
|
|
@ -70,12 +70,10 @@ sed -i "s@#APP#@${app}@g" ../conf/nginx.conf
|
||||||
sed -i "s@#PATH#@${path}@g" ../conf/nginx.conf
|
sed -i "s@#PATH#@${path}@g" ../conf/nginx.conf
|
||||||
sed -i "s@#LOCATION#@${path:-/}@g" ../conf/nginx.conf
|
sed -i "s@#LOCATION#@${path:-/}@g" ../conf/nginx.conf
|
||||||
sed -i "s@#DESTDIR#@${DESTDIR}@g" ../conf/nginx.conf
|
sed -i "s@#DESTDIR#@${DESTDIR}@g" ../conf/nginx.conf
|
||||||
# check if .well-known is already served on the domain
|
# do not serve .well-known if it's already served on the domain
|
||||||
if [[ $(curl -s -o /dev/null -w '%{http_code}' \
|
if is_url_handled "https://${domain}/.well-known/caldav" ; then
|
||||||
"https://${domain}/.well-known/caldav") =~ ^[23] ]] ; then
|
|
||||||
# ... and delete it from nginx configuration
|
|
||||||
sed -ri '/^location = \/\.well\-known\/(caldav|carddav) \{/,/\}/d' \
|
sed -ri '/^location = \/\.well\-known\/(caldav|carddav) \{/,/\}/d' \
|
||||||
../conf/nginx.conf
|
../conf/nginx.conf
|
||||||
fi
|
fi
|
||||||
sudo cp ../conf/nginx.conf "$nginx_conf"
|
sudo cp ../conf/nginx.conf "$nginx_conf"
|
||||||
|
|
||||||
|
|
|
@ -91,12 +91,10 @@ sed -i "s@#APP#@${app}@g" ../conf/nginx.conf
|
||||||
sed -i "s@#PATH#@${path}@g" ../conf/nginx.conf
|
sed -i "s@#PATH#@${path}@g" ../conf/nginx.conf
|
||||||
sed -i "s@#LOCATION#@${path:-/}@g" ../conf/nginx.conf
|
sed -i "s@#LOCATION#@${path:-/}@g" ../conf/nginx.conf
|
||||||
sed -i "s@#DESTDIR#@${DESTDIR}@g" ../conf/nginx.conf
|
sed -i "s@#DESTDIR#@${DESTDIR}@g" ../conf/nginx.conf
|
||||||
# check if .well-known is already served on the domain
|
# do not serve .well-known if it's already served on the domain
|
||||||
if [[ $(curl -s -o /dev/null -w '%{http_code}' \
|
if is_url_handled "https://${domain}/.well-known/caldav" ; then
|
||||||
"https://${domain}/.well-known/caldav") =~ ^[23] ]] ; then
|
|
||||||
# ... and delete it from nginx configuration
|
|
||||||
sed -ri '/^location = \/\.well\-known\/(caldav|carddav) \{/,/\}/d' \
|
sed -ri '/^location = \/\.well\-known\/(caldav|carddav) \{/,/\}/d' \
|
||||||
../conf/nginx.conf
|
../conf/nginx.conf
|
||||||
fi
|
fi
|
||||||
sudo cp ../conf/nginx.conf "$nginx_conf"
|
sudo cp ../conf/nginx.conf "$nginx_conf"
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue