summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile89
-rwxr-xr-xscripts/create_mxml.sh81
-rwxr-xr-xscripts/get-metadata.sh36
-rw-r--r--sp-with-coco-errors20
4 files changed, 150 insertions, 76 deletions
diff --git a/Makefile b/Makefile
index 3d759a48..6be780e8 100644
--- a/Makefile
+++ b/Makefile
@@ -23,10 +23,12 @@ TOU := swamid-tou-en.txt swamid-tou-sv.txt
-include $(SWAMID_MK_CONFIG)
-all: clean dependencies test sign clean web
+all: clean dependencies signtest sign clean web
MXML=$(shell echo *.mxml)
-SWAMIDXML=$(patsubst swamid-2.0/%.xml,.time/%.time,$(wildcard swamid-2.0/*.xml))
+EDUGAINXML=$(patsubst swamid-edugain/%.xml,.time/%.time,$(wildcard swamid-edugain/*.xml))
+SWAMID20XML=$(patsubst swamid-2.0/%.xml,.time/%.time,$(wildcard swamid-2.0/*.xml))
+TESTINGXML=$(patsubst swamid-testing/%.xml,.time/%.time,$(wildcard swamid-testing/*.xml))
sign: swamid upstream
@@ -100,8 +102,8 @@ tidy:
@for x in `find $(SRCDIRS) -name \*.xml`; do xsltproc xslt/clean-entitydescriptor.xsl $$x > $$x.c && mv $$x.c $$x; done
testMetadataUsage:
- @echo "Checking for files in swamid-2.0 that isn't used"
- @for file in swamid-2.0/* ; do if ! grep -q $$file *.mxml; then echo " $$file is not referenced in any mxml file"; fi; done | sed 's/.*/&/'
+ @echo "Checking for files in swamid-edugain swamid-2.0 and swamid-testing that isn't used"
+ @for file in `find $(SRCDIRS) -name \*.xml` ; do if ! grep -q $$file *.mxml; then echo " $$file is not referenced in any mxml file"; fi; done | sed 's/.*/&/'
testRefedsRnS:
@echo "Checking for refeds R&S compatibillity for entities exported to eduGAIN"
@@ -135,7 +137,7 @@ testEduGAINchecks:
testMDUI:
@echo "Checking for uniq IdP MDUI DisplayName"
- @for lang in `cat swamid-2.0/*.xml | sed -n 's/.*xml:lang="\([^"]*\)".*/\1/p' | sort -u` ; do for x in `find $(SRCDIRS) -name \*.xml | xargs grep -l IDPSSODescriptor` ; do cat $$x | sed 's;\(</*\)[a-z0-9]*:;\1;g' | sed 's/xmlns="[^"]*"//' | xmllint --xpath "/EntityDescriptor/IDPSSODescriptor/Extensions/UIInfo/DisplayName[@xml:lang='$$lang']" - 2>/dev/null | sed 's/^[ ]*//;s/[ ]*$$//' | tr -d '\n' | sed 's;<[^>]*>\([^<]*\)</[^>]*>;\1\n;g' | sed "s;^; $$x $$lang ;" | sed 's/.*/&/' ; done | sort -k 3 | uniq -d -f 2 ; done | grep . && exit 1 || true
+ @for lang in `find $(SRCDIRS) -name \*.xml -exec cat {} \; | sed -n 's/.*xml:lang="\([^"]*\)".*/\1/p' | sort -u` ; do for x in `find $(SRCDIRS) -name \*.xml | xargs grep -l IDPSSODescriptor` ; do cat $$x | sed 's;\(</*\)[a-z0-9]*:;\1;g' | sed 's/xmlns="[^"]*"//' | xmllint --xpath "/EntityDescriptor/IDPSSODescriptor/Extensions/UIInfo/DisplayName[@xml:lang='$$lang']" - 2>/dev/null | sed 's/^[ ]*//;s/[ ]*$$//' | tr -d '\n' | sed 's;<[^>]*>\([^<]*\)</[^>]*>;\1\n;g' | sed "s;^; $$x $$lang ;" | sed 's/.*/&/' ; done | sort -k 3 | uniq -d -f 2 ; done | grep . && exit 1 || true
testIdPinSP:
@echo "Check that SP:s does not define IDPSSODescriptor"
@@ -175,49 +177,78 @@ checkInvalidChars:
fi;\
done | grep . && exit 1 || exit 0
-test: syntaxtest testMDUI testALlevel testEduGAINchecks testRefedsRnS testMetadataUsage testBadStrings testIdPinSP testRegistrationAuthority checkInvalidChars
+createMXMLfiles:
+ @echo Recreating MXML files
+ @scripts/create_mxml.sh | sed 's/.*/&/' | grep . && exit 1 || exit 0
-test2: $(SWAMIDXML) schematest testALlevel testEduGAINchecks testRefedsRnS testMetadataUsage testBadStrings testIdPinSP testRegistrationAuthority checkInvalidChars
+signtest: syntaxtest testMDUI testALlevel testEduGAINchecks testRefedsRnS testMetadataUsage testBadStrings testIdPinSP testRegistrationAuthority checkInvalidChars
+test: createMXMLfiles signtest
+
+test2: $(EDUGAINXML) $(SWAMID20XML) $(TESTINGXML) test
+
+.time/%.time: swamid-edugain/%.xml
+ @# make tidy
+ @xsltproc --stringparam regDate $(NOW) xslt/add-rpi.xsl $< > $<.c && mv $<.c $<
+ @xsltproc xslt/clean-entitydescriptor.xsl $< > $<.c && mv $<.c $<
+
+ @# make schematest
+ @xmllint --xinclude --nowarning --noout --path schema --schema schema.xsd $< 2>&1
+
+ @echo $< done
+ @touch -r $< $@
.time/%.time: swamid-2.0/%.xml
+ @# make tidy
+ @xsltproc --stringparam regDate $(NOW) xslt/add-rpi.xsl $< > $<.c && mv $<.c $<
+ @xsltproc xslt/clean-entitydescriptor.xsl $< > $<.c && mv $<.c $<
+
@# make schematest
@xmllint --xinclude --nowarning --noout --path schema --schema schema.xsd $< 2>&1
+ @echo $< done
+ @touch -r $< $@
+
+.time/%.time: swamid-testing/%.xml
@# make tidy
@xsltproc --stringparam regDate $(NOW) xslt/add-rpi.xsl $< > $<.c && mv $<.c $<
@xsltproc xslt/clean-entitydescriptor.xsl $< > $<.c && mv $<.c $<
- @# make testMDUI
- @echo "Checking for bad lang codes"
- @# Lang = ISO_639-1
- @cat $< | sed -n 's/.*xml:lang="\([^"]*\)".*/\1/p' | sort -u | grep -vxE 'cs|da|de|en|fi|fr|it|sv|no|nn|nb|is' | sed 's/.*/Bad lang code : &/' | grep . && exit 1 || true
- @if [ `grep EntityAttributes $< | wc -l ` -gt 2 ]; then echo "Multiple EntityAttributes" | sed 's/.*/&/' ; exit 1; fi
- @if ( grep -q IDPSSODescriptor $< ) ; then \
- echo "Do IdP checks" ; \
- echo ">Checking for uniq IdP MDUI DisplayName"; \
- for lang in `cat $< | sed -n 's/.*xml:lang="\(..\)".*/\1/p' | sort -u` ; do \
- mdui_displayname=`cat $< | sed 's;\(</*\)[a-z0-9]*:;\1;g' | sed 's/xmlns="[^"]*"//' | xmllint --xpath "/EntityDescriptor/IDPSSODescriptor/Extensions/UIInfo/DisplayName[@xml:lang='$$lang']" - 2>/dev/null | sed 's/^[ ]*//;s/[ ]*$$//' | tr -d '\n' | sed 's;<[^>]*>\([^<]*\)</[^>]*>;\1\n;g'`;\
- organizationdisplayname=`cat $< | sed 's;\(</*\)[a-z0-9]*:;\1;g' | sed 's/xmlns="[^"]*"//' | xmllint --xpath "/EntityDescriptor/Organization/OrganizationDisplayName[@xml:lang='$$lang']" - 2>/dev/null | sed 's/^[ ]*//;s/[ ]*$$//' | tr -d '\n' | sed 's;<[^>]*>\([^<]*\)</[^>]*>;\1\n;g'` ;\
- for x in `find $(SRCDIRS) -name \*.xml | xargs grep -l IDPSSODescriptor | egrep -v $<` ; do cat $$x | sed 's;\(</*\)[a-z0-9]*:;\1;g' | sed 's/xmlns="[^"]*"//' | xmllint --xpath "/EntityDescriptor/IDPSSODescriptor/Extensions/UIInfo/DisplayName[@xml:lang='$$lang']" - 2>/dev/null | tr -d '\n' | sed 's;<[^>]*>\([^<]*\)</[^>]*>;\1\n;g' | egrep "^$$mdui_displayname$$" | sed "s;^;Duplicate DisplayName in $$x for lang = $$lang\n;" | sed 's/.*/&/' ; done | grep . && exit 1 || true;\
- done; \
- echo ">Checking for invalid IPHint"; \
- cat $< | sed -n 's;.*<[a-z0-9:]*IPHint>\(.*\)</[a-z0-9:]*IPHint>;\1;p' | grep -vE '^$$|^[0-9./a-fA-F:]*$$' | sed 's/.*/&/'; \
- echo ">Checking for invalid geodata (syntax is geo:xx.yy,zz.vv)";\
- cat $< | sed -n 's;.*<[a-z0-9:]*GeolocationHint>\(.*\)</[a-z0-9:]*GeolocationHint>;\1;p' | grep -vE '^$$|^geo:[0-9][0-9][0-9.]*,[0-9][0-9][0-9.]*$$' | sed 's/.*/&/' ; \
- echo ">Check for IdP:s with Logos over http";\
- cat $< | grep 'Logo .*http://' | sed 's/.*>\(.*\)<.*/\1/' | grep . && exit 1 || exit 0 ; \
- fi
+ @# make schematest
+ @xmllint --xinclude --nowarning --noout --path schema --schema schema.xsd $< 2>&1
@echo $< done
@touch -r $< $@
+old_check:
+ @# make testMDUI
+ @#echo "Checking for bad lang codes"
+ @# Lang = ISO_639-1
+ @#cat $< | sed -n 's/.*xml:lang="\([^"]*\)".*/\1/p' | sort -u | grep -vxE 'cs|da|de|en|fi|fr|it|sv|no|nn|nb|is' | sed 's/.*/Bad lang code : &/' | grep . && exit 1 || true
+ @#if [ `grep EntityAttributes $< | wc -l ` -gt 2 ]; then echo "Multiple EntityAttributes" | sed 's/.*/&/' ; exit 1; fi
+ @#if ( grep -q IDPSSODescriptor $< ) ; then \
+ #echo "Do IdP checks" ; \
+ #echo ">Checking for uniq IdP MDUI DisplayName"; \
+ #for lang in `cat $< | sed -n 's/.*xml:lang="\(..\)".*/\1/p' | sort -u` ; do \
+ #mdui_displayname=`cat $< | sed 's;\(</*\)[a-z0-9]*:;\1;g' | sed 's/xmlns="[^"]*"//' | xmllint --xpath "/EntityDescriptor/IDPSSODescriptor/Extensions/UIInfo/DisplayName[@xml:lang='$$lang']" - 2>/dev/null | sed 's/^[ ]*//;s/[ ]*$$//' | tr -d '\n' | sed 's;<[^>]*>\([^<]*\)</[^>]*>;\1\n;g'`;\
+ #organizationdisplayname=`cat $< | sed 's;\(</*\)[a-z0-9]*:;\1;g' | sed 's/xmlns="[^"]*"//' | xmllint --xpath "/EntityDescriptor/Organization/OrganizationDisplayName[@xml:lang='$$lang']" - 2>/dev/null | sed 's/^[ ]*//;s/[ ]*$$//' | tr -d '\n' | sed 's;<[^>]*>\([^<]*\)</[^>]*>;\1\n;g'` ;\
+ #for x in `find $(SRCDIRS) -name \*.xml | xargs grep -l IDPSSODescriptor | egrep -v $<` ; do cat $$x | sed 's;\(</*\)[a-z0-9]*:;\1;g' | sed 's/xmlns="[^"]*"//' | xmllint --xpath "/EntityDescriptor/IDPSSODescriptor/Extensions/UIInfo/DisplayName[@xml:lang='$$lang']" - 2>/dev/null | tr -d '\n' | sed 's;<[^>]*>\([^<]*\)</[^>]*>;\1\n;g' | egrep "^$$mdui_displayname$$" | sed "s;^;Duplicate DisplayName in $$x for lang = $$lang\n;" | sed 's/.*/&/' ; done | grep . && exit 1 || true;\
+ #done; \
+ #echo ">Checking for invalid IPHint"; \
+ #cat $< | sed -n 's;.*<[a-z0-9:]*IPHint>\(.*\)</[a-z0-9:]*IPHint>;\1;p' | grep -vE '^$$|^[0-9./a-fA-F:]*$$' | sed 's/.*/&/'; \
+ #echo ">Checking for invalid geodata (syntax is geo:xx.yy,zz.vv)";\
+ #cat $< | sed -n 's;.*<[a-z0-9:]*GeolocationHint>\(.*\)</[a-z0-9:]*GeolocationHint>;\1;p' | grep -vE '^$$|^geo:[0-9][0-9][0-9.]*,[0-9][0-9][0-9.]*$$' | sed 's/.*/&/' ; \
+ #echo ">Check for IdP:s with Logos over http";\
+ #cat $< | grep 'Logo .*http://' | sed 's/.*>\(.*\)<.*/\1/' | grep . && exit 1 || exit 0 ; \
+ #fi
+
+
deeptest: test testMDUIreach
commit2: test2
@git diff --color || true
@echo ; echo -n "Run 'git commit -av'? [Y/n/skip] " ; read x ; case $$x in "Y"|"y"|"") git commit -av ;; s|skip) ;; *) exit 1 ;; esac
@git status -u
- @echo "Checking for not committed files in swamid-2.0/" ; if git status --porcelain --ignored | awk '{print $$2}' | grep "^swamid-2.0/" | sed 's/^/ /' | grep . ; then echo "Not committed files in swamid-2.0/, aborting" ; exit 1 ; fi
+ @echo "Checking for not committed files in swamid-*/" ; if git status --porcelain --ignored | awk '{print $$2}' | egrep "^swamid-edugain|^swamid-2.0/|^swamid-testing/" | sed 's/^/ /' | grep . ; then echo "Not committed files in swamid-*/, aborting" ; exit 1 ; fi
@echo ; echo -n "Run 'git push'? [Y/n] " ; read x ; case $$x in "Y"|"y"|"") ;; *) exit 1 ;; esac
@git push
@@ -225,6 +256,6 @@ commit: tidy test
@git diff --color || true
@echo ; echo -n "Run 'git commit -av'? [Y/n/skip] " ; read x ; case $$x in "Y"|"y"|"") git commit -av ;; s|skip) ;; *) exit 1 ;; esac
@git status -u
- @echo "Checking for not committed files in swamid-2.0/" ; if git status --porcelain --ignored | awk '{print $$2}' | grep "^swamid-2.0/" | sed 's/^/ /' | grep . ; then echo "Not committed files in swamid-2.0/, aborting" ; exit 1 ; fi
+ @echo "Checking for not committed files in swamid-*/" ; if git status --porcelain --ignored | awk '{print $$2}' | egrep "^swamid-edugain|^swamid-2.0/|^swamid-testing/" | sed 's/^/ /' | grep . ; then echo "Not committed files in swamid-*/, aborting" ; exit 1 ; fi
@echo ; echo -n "Run 'git push'? [Y/n] " ; read x ; case $$x in "Y"|"y"|"") ;; *) exit 1 ;; esac
@git push
diff --git a/scripts/create_mxml.sh b/scripts/create_mxml.sh
new file mode 100755
index 00000000..f0fd139f
--- /dev/null
+++ b/scripts/create_mxml.sh
@@ -0,0 +1,81 @@
+#!/bin/bash
+# Creates MXML files to be used in signing of Metadata
+if ! test -d swamid-2.0 ; then
+ echo "Script should be run from base directory of swamid-metadata"
+ exit
+fi
+
+ls swamid-2.0/ swamid-testing/ swamid-edugain | egrep -v "/:|^$" | sort | uniq -c | awk '$1 > 1 {print $2, "exists in more than one feed"}'
+
+#
+# eduGAIN
+#
+cat << EOF > swamid-edugain-idp-1.0.mxml
+<?xml version="1.0" encoding="UTF-8"?>
+<md:EntitiesDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ Name="http://md.swamid.se/md/swamid-idp-2.0.xml">
+EOF
+grep -l IDPSSO swamid-edugain/*.xml | while read file; do
+ echo " <xi:include href=\"$file\"/>" >> swamid-edugain-idp-1.0.mxml
+done
+echo "</md:EntitiesDescriptor>" >> swamid-edugain-idp-1.0.mxml
+
+cat << EOF > swamid-edugain-sp-1.0.mxml
+<?xml version="1.0" encoding="UTF-8"?>
+<md:EntitiesDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:shibmeta="urn:mace:shibboleth:metadata:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:shibmd="urn:mace:shibboleth:metadata:1.0">
+EOF
+grep -l SPSSO swamid-edugain/*.xml | grep -v "`grep -l IDPSSO swamid-edugain/*.xml`" | while read file; do
+ echo " <xi:include href=\"$file\"/>" >> swamid-edugain-sp-1.0.mxml
+done
+echo "</md:EntitiesDescriptor>" >> swamid-edugain-sp-1.0.mxml
+
+#
+# Swamid-2.0
+#
+cat << EOF > swamid-idp-2.0.mxml
+<?xml version="1.0" encoding="UTF-8"?>
+<md:EntitiesDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ Name="http://md.swamid.se/md/swamid-idp-2.0.xml">
+ <xi:include href="swamid-edugain-idp-1.0.mxml" xpointer="xpointer(//*[@entityID])"/>
+
+ <!-- Opt-out from eduGAIN IDP:s -->
+EOF
+grep -l IDPSSO swamid-2.0/*.xml | while read file; do
+ echo " <xi:include href=\"$file\"/>" >> swamid-idp-2.0.mxml
+done
+echo "</md:EntitiesDescriptor>" >> swamid-idp-2.0.mxml
+
+cat << EOF > swamid-sp-2.0.mxml
+<?xml version="1.0" encoding="UTF-8"?>
+<md:EntitiesDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:shibmeta="urn:mace:shibboleth:metadata:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:shibmd="urn:mace:shibboleth:metadata:1.0">
+ <xi:include href="swamid-edugain-idp-1.0.mxml" xpointer="xpointer(//*[@entityID])"/>
+
+ <!-- Opt-out from eduGAIN SP:s -->
+EOF
+grep -l SPSSO swamid-2.0/*.xml | grep -v "`grep -l IDPSSO swamid-2.0/*.xml`" | while read file; do
+ echo " <xi:include href=\"$file\"/>" >> swamid-sp-2.0.mxml
+done
+echo "</md:EntitiesDescriptor>" >> swamid-sp-2.0.mxml
+
+#
+# Swamid-testing
+#
+cat << EOF > swamid-testing-idp-1.0.mxml
+<?xml version="1.0"?>
+<EntitiesDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:xi="http://www.w3.org/2001/XInclude" Name="http://md.swamid.se/md/swamid-testing-idp-1.0.xml">
+EOF
+egrep -l "AttributeAuthorityDescriptor|IDPSSODescriptor" swamid-testing/*.xml | while read file; do
+ echo " <xi:include href=\"$file\"/>" >> swamid-testing-idp-1.0.mxml
+done
+echo "</EntitiesDescriptor>" >> swamid-testing-idp-1.0.mxml
+
+cat << EOF > swamid-testing-sp-1.0.mxml
+<?xml version="1.0"?>
+<EntitiesDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:xi="http://www.w3.org/2001/XInclude" Name="http://md.swamid.se/md/swamid-testing-sp-1.0.xml">
+EOF
+grep -l SPSSO swamid-testing/*.xml | grep -v "`egrep -l "AttributeAuthorityDescriptor|IDPSSODescriptor" swamid-testing/*.xml`" | while read file; do
+ echo " <xi:include href=\"$file\"/>" >> swamid-testing-sp-1.0.mxml
+done
+echo "</EntitiesDescriptor>" >> swamid-testing-sp-1.0.mxml
diff --git a/scripts/get-metadata.sh b/scripts/get-metadata.sh
index c3be62a4..c26262ba 100755
--- a/scripts/get-metadata.sh
+++ b/scripts/get-metadata.sh
@@ -22,13 +22,7 @@ EOF
exit 1
fi
-script_cwd=`dirname "$0"`
-if test -d swamid-2.0 ; then
- echo "Moving into swamid-2.0/"
- cd swamid-2.0
- echo "$script_cwd" | grep -q ^/ || script_cwd=../$script_cwd
-fi
-
+xmldir=swamid-2.0
update_xml=true
if echo "$metadataurl" | grep -qE '^http://|^https://' ; then
metadata=`curl -L -s -k -f "$metadataurl"`
@@ -42,6 +36,7 @@ else
else
case $metadataurl in
[0-9][0-9]*)
+ xmldir=$(curl -L -m 5 -s -k -f "https://metadata.swamid.se/?show=feed&id=${metadataurl}")
urls="https://metadata.swamid.se/?rawXML=${metadataurl}"
update_xml=false
;;
@@ -60,6 +55,13 @@ else
fi
[ -n "$metadata" ] || error "Failed to fetch metadata from $metadataurl"
+script_cwd=`dirname "$0"`
+if test -d $xmldir ; then
+ echo "Moving into $xmldir/"
+ cd $xmldir
+ echo "$script_cwd" | grep -q ^/ || script_cwd=../$script_cwd
+fi
+
entityid=`echo "$metadata" | sed -n 's/.*entityID=['\''"]\([^"]*\)['\''"].*/\1/p'`
[ -n "$entityid" ] || error "Failed to find entityID in metadata"
[ `echo "$entityid" | wc -l` = 1 ] || error "Multiple entityid:s found: `echo $entityid`"
@@ -79,25 +81,6 @@ fi
read x
case $x in
Y|y|"")
- if $new ; then
- echo -n "Add swamid-2.0/$entityidfn to swamid-sp-2.0.mxml [Y/n]? "
- read x
- case $x in
- Y|y|"")
- sed -i.bak "s;^</md:EntitiesDescriptor>; <xi:include href=\"swamid-2.0/$entityidfn\"/>\n&;" ../swamid-sp-2.0.mxml
- if [ -f ../swamid-sp-2.0.mxml.bak ]; then
- rm ../swamid-sp-2.0.mxml.bak
- fi
- echo --
- tail -n 10 ../swamid-sp-2.0.mxml | sed 's/^/ /'
- echo --
- ;;
- *)
- echo "Not added"
- ;;
- esac
- fi
-
echo "$metadata" > $entityidfn
tmp=`mktemp`
if $update_xml ; then
@@ -122,4 +105,3 @@ case $x in
echo "Nothing done"
;;
esac
-
diff --git a/sp-with-coco-errors b/sp-with-coco-errors
deleted file mode 100644
index 0ac393db..00000000
--- a/sp-with-coco-errors
+++ /dev/null
@@ -1,20 +0,0 @@
-swamid-2.0/auth.asiaportal.info.xml
-swamid-2.0/dev-us.cloudmore.com-shibboleth.xml
-swamid-2.0/dev.cloudmore.com-shibboleth.xml
-swamid-2.0/digkonto-test.ita.chalmers.se.xml
-swamid-2.0/indico.test.uu.se-shibboleth.xml
-swamid-2.0/ki.alma.exlibrisgroup.com-mng-login.xml
-swamid-2.0/ki.primo.exlibrisgroup.com-mng-login.xml
-swamid-2.0/konto-test.test.hb.se-shibboleth.xml
-swamid-2.0/konto.hb.se-shibboleth.xml
-swamid-2.0/local.cloudmore.com-shibboleth.xml
-swamid-2.0/moodle.media.nordu.net-.xml
-swamid-2.0/myaccount.chalmers.se.xml
-swamid-2.0/prestaging.cloudmore.com-shibboleth.xml
-swamid-2.0/staging-us.cloudmore.com-shibboleth.xml
-swamid-2.0/staging.cloudmore.com-shibboleth.xml
-swamid-2.0/urn-mace-feide.no-services-no.inspera.assessment.test.xml
-swamid-2.0/us.cloudmore.com-shibboleth.xml
-swamid-2.0/www.itslearning.com-integrations-samlmetadata-saml2v2-extensions-2.xml
-swamid-2.0/solid-proxy.sunet.se-sp-metadata.xml.xml
-swamid-2.0/test-examensansokan.portal.chalmers.se-ny.xml