summaryrefslogtreecommitdiff
path: root/scripts/get-metadata.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/get-metadata.sh')
-rwxr-xr-xscripts/get-metadata.sh20
1 files changed, 16 insertions, 4 deletions
diff --git a/scripts/get-metadata.sh b/scripts/get-metadata.sh
index d7275d0d..509b0d2b 100755
--- a/scripts/get-metadata.sh
+++ b/scripts/get-metadata.sh
@@ -17,6 +17,7 @@ Ex: `basename $0` https://shibsp.mysite.com/Shibboleth.sso/Metadata
`basename $0` https://shibidp.mysite.com/idp/profile/Metadata/SAML
`basename $0` some-downloaded-metadata.xml
`basename $0` reep:<entityid>
+ `basename $0` <hostname> (tries to pull from standard locations)
EOF
exit 1
fi
@@ -24,11 +25,19 @@ fi
if echo "$metadataurl" | grep -qE '^http://|^https://' ; then
metadata=`curl -s -k -f "$metadataurl"`
elif echo "$metadataurl" | grep -qE '^reep:' ; then
- id=`echo -n "$metadataurl" | sed 's/^reep://' | sha1sum | awk '{print $1}'`
- metadataurl="http://md.reep.refeds.org/entities/%7Bsha1%7D$id"
- metadata=`curl -s -k -f "$metadataurl"`
+ id=`echo -n "$metadataurl" | sed 's/^reep://' | sha1sum | awk '{print $1}'`
+ metadataurl="http://md.reep.refeds.org/entities/%7Bsha1%7D$id"
+ metadata=`curl -s -k -f "$metadataurl"`
else
- metadata=`cat "$metadataurl"`
+ if [ -s "${metadataurl}" ]; then
+ metadata=`cat "$metadataurl"`
+ else
+ urls="https://${metadataurl}/idp/shibboleth https://${metadataurl}/Shibboleth.sso/Metadata https://${metadataurl}/saml/index/sp-metadata"
+ for i in ${urls}; do
+ metadata=`curl -s -k -f "${i}"`
+ [ -n "${metadata}" ] && break
+ done
+ fi
fi
[ -n "$metadata" ] || error "Failed to fetch metadata from $metadataurl"
@@ -48,6 +57,9 @@ read x
case $x in
Y|y|"")
echo "$metadata" > $entityidfn
+ tmp=`mktemp`
+ xsltproc `dirname $0`/../xslt/clean-entitydescriptor.xsl ${entityidfn} > ${tmp} && mv ${tmp} ${entityidfn}
+
echo $entityidfn
;;
*)