DEST := /opt/published-metadata SRCDIRS=swamid-2.0 swamid-edugain swamid-testing NOW=$(shell perl scripts/now_date.pl) SITE := site/md.swamid.se TOU := swamid-tou-en.txt swamid-tou-sv.txt tag: cd ..; make tag 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)) web: $(SITE) $(TOU) rsync -avz $(TOU) $(SITE)/ $(DEST) testRefedsRnS: @echo "Checking for refeds R&S compatibillity for entities exported to eduGAIN" @for x in `grep -l SPSSODescriptor swamid-edugain/*` ; do \ got_refeds_RnS=`cat $$x | sed 's;\(/dev/null | grep 'http://refeds.org/category/research-and-scholarship'` ; \ if [ -n "$$got_refeds_RnS" ] ; then \ http_post=`cat $$x | sed 's;\(/dev/null | grep 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST'` ; \ if [ -z "$$http_post" ] ; then echo " $$x: Missing HTTP-POST binding." | sed 's/.*/&/' ; fi ; \ mdui_DisplayName=`cat $$x | sed 's;\(/dev/null | grep 'DisplayName'` ; \ if [ -z "$$mdui_DisplayName" ] ; then echo " $$x: Missing mdui:DisplayName." | sed 's/.*/&/' ; fi ; \ mdui_InformationURL=`cat $$x | sed 's;\(/dev/null | grep 'InformationURL'` ; \ if [ -z "$$mdui_InformationURL" ] ; then echo " $$x: Missing mdui:InformationURL." | sed 's/.*/&/' ; fi ; \ tech_contact=`cat $$x | sed 's;\(/dev/null | grep 'EmailAddress'` ; \ if [ -z "$$tech_contact" ] ; then echo " $$x: Missing ContactPerson contactType='technical'." | sed 's/.*/&/' ; fi ; \ fi ; \ done testEduGAINchecks: @echo "Checking for attributes not allowed in entities exported to eduGAIN" @for x in `grep -l SPSSODescriptor swamid-edugain/*` ; do \ if ( grep -q "AssertionConsumerService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" $$x ); then \ echo " $$x: AssertionConsumerService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect\" not allowed"; \ fi ; \ done @for x in `ls swamid-edugain/*` ; do \ sed 's;\(/dev/null | grep -vq "^$$" || echo " $$x missing OrganizationName" | sed 's/.*/&/' ; \ sed 's;\(/dev/null | grep -vq "^$$" || echo " $$x missing OrganizationDisplayName" | sed 's/.*/&/' ; \ sed 's;\(/dev/null | grep -vq "^$$" || echo " $$x missing OrganizationURL" | sed 's/.*/&/' ; \ done testMDUI: @echo "Checking for uniq IdP MDUI DisplayName" @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;\(/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 testALlevel: @echo Fixa så att vi kollar!!!!! @echo "Check for IdP:s with AL3 without AL2" @for x in `find $(SRCDIRS) -name \*.xml`; do if grep -q http://www.swamid.se/policy/assurance/al3 $$x && ! grep -q http://www.swamid.se/policy/assurance/al2 $$x ; then echo " $$x" | sed 's/.*/&/' ; fi ; done @echo "Check for IdP:s with AL2 without AL1" @for x in `find $(SRCDIRS) -name \*.xml`; do if grep -q http://www.swamid.se/policy/assurance/al2 $$x && ! grep -q http://www.swamid.se/policy/assurance/al1 $$x ; then echo " $$x" | sed 's/.*/&/' ; fi ; done testBadStrings: @echo "Check for bad strings in metadata" @for x in `find $(SRCDIRS) -name \*.xml`; do grep -E 'ServiceName xml:lang="[^"]*"/>' $$x | sed 's/^/ /' ; done | grep . && exit 1 || exit 0 testRegistrationAuthority: @echo "Check for registrationAuthority="http://www.swamid.se/" in EntityDescriptor/Extensions" @for x in `find $(SRCDIRS) -name \*.xml`; do \ if ! cat $$x | sed 's;\(/dev/null | grep -qE 'registrationAuthority="http://www.swamid.se/"|registrationAuthority="http://www.swamid.se/loop"' ; then \ echo " $$x" | sed 's/.*/&/' ;\ fi;\ done | grep . && exit 1 || exit 0 checkInvalidChars: @echo "Check for invalid characters" @for x in `find $(SRCDIRS) -name \*.xml`; do \ if grep -q " " $$x ; then \ echo " $$x" | sed 's/.*/&/' ;\ fi;\ done | grep . && exit 1 || exit 0 checkUKalgorithms: @echo "Check for invalid algorithms in swamid-edugain" @xsltproc --xinclude xslt/check_uk_algorithms.xsl swamid-edugain/* 2>&1 | sed 's/.*/&/' | grep . && exit 1 || exit 0 test: $(EDUGAINXML) $(SWAMID20XML) $(TESTINGXML) testMDUI testALlevel testEduGAINchecks testRefedsRnS testBadStrings testRegistrationAuthority checkInvalidChars checkUKalgorithms .time/%.time: swamid-edugain/%.xml @xsltproc --stringparam regDate $(NOW) xslt/add-rpi.xsl $< > $<.c && mv $<.c $< @xsltproc xslt/clean-entitydescriptor.xsl $< > $<.c && mv $<.c $< @xmllint --xinclude --nowarning --noout --path schema --schema schema.xsd $< 2>&1 @echo $< done @touch -r $< $@ .time/%.time: swamid-2.0/%.xml @xsltproc --stringparam regDate $(NOW) xslt/add-rpi.xsl $< > $<.c && mv $<.c $< @xsltproc xslt/clean-entitydescriptor.xsl $< > $<.c && mv $<.c $< @xmllint --xinclude --nowarning --noout --path schema --schema schema.xsd $< 2>&1 @echo $< done @touch -r $< $@ .time/%.time: swamid-testing/%.xml @xsltproc --stringparam regDate $(NOW) xslt/add-rpi.xsl $< > $<.c && mv $<.c $< @xsltproc xslt/clean-entitydescriptor.xsl $< > $<.c && mv $<.c $< @xmllint --xinclude --nowarning --noout --path schema --schema schema.xsd $< 2>&1 @echo $< done @touch -r $< $@ commit: 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-*/" ; 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