Skip to content
This repository has been archived by the owner. It is now read-only.

Commit

Permalink
Add REFEDS "Hide from Discovery" entity category to IdPs marked with …
Browse files Browse the repository at this point in the history
…HideFromWAYF.
  • Loading branch information
iay committed Nov 12, 2014
1 parent 0c37a5b commit 2855ed2
Show file tree
Hide file tree
Showing 3 changed files with 79 additions and 0 deletions.
66 changes: 66 additions & 0 deletions mdx/uk/add_hide_category.xsl
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
add_hide_category.xsl
Adds the REFEDS "Hide from Discovery" entity category to IdPs which are already
labelled with the UK federation's "HideFromWAYF" marker element.
Assumes that the IdP in question has an Extensions element already, but no
entity attributes. This is currently true for UKf-registered entities, but
a longer term solution will require the ability to add a new value into
an existing collection of entity attributes.
-->
<xsl:stylesheet version="1.0"
xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"
xmlns:mdattr="urn:oasis:names:tc:SAML:metadata:attribute"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
xmlns:wayf="http://sdss.ac.uk/2006/06/WAYF"

xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
exclude-result-prefixes="md">

<!--Force UTF-8 encoding for the output.-->
<xsl:output omit-xml-declaration="no" method="xml" encoding="UTF-8" indent="yes"/>

<xsl:template match="md:EntityDescriptor[md:IDPSSODescriptor]/md:Extensions[wayf:HideFromWAYF]">
<xsl:copy>
<xsl:text>&#10;</xsl:text>
<xsl:text> </xsl:text>
<xsl:element name="mdattr:EntityAttributes">
<xsl:text>&#10;</xsl:text>
<xsl:text> </xsl:text>
<xsl:element name="saml:Attribute">
<xsl:attribute name="Name">http://macedir.org/entity-category</xsl:attribute>
<xsl:attribute name="NameFormat">urn:oasis:names:tc:SAML:2.0:attrname-format:uri</xsl:attribute>
<xsl:text>&#10;</xsl:text>
<xsl:text> </xsl:text>
<xsl:element name="saml:AttributeValue">
<xsl:text>http://refeds.org/category/hide-from-discovery</xsl:text>
</xsl:element>
<xsl:text>&#10;</xsl:text>
<xsl:text> </xsl:text>
</xsl:element>
<xsl:text>&#10;</xsl:text>
<xsl:text> </xsl:text>
</xsl:element>
<xsl:apply-templates select="node()"/>
</xsl:copy>
</xsl:template>

<!--By default, copy text blocks, comments and attributes unchanged.-->
<xsl:template match="text()|comment()|@*">
<xsl:copy/>
</xsl:template>

<!--By default, copy all elements from the input to the output, along with their attributes and contents.-->
<xsl:template match="*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>

</xsl:stylesheet>
12 changes: 12 additions & 0 deletions mdx/uk/beans.xml
Original file line number Diff line number Diff line change
Expand Up @@ -458,6 +458,18 @@
<ref bean="uk_default_regauth"/>
<ref bean="populateRegistrationAuthorities"/>

<!--
Add REFEDS Hide from Discovery category as a standardised
equivalent to our HideFromWAYF element.
-->
<bean p:id="uk_addHideFromDiscovery" parent="XSLTransformationStage">
<property name="XSLResource">
<bean parent="ClassPathResource">
<constructor-arg value="uk/add_hide_category.xsl"/>
</bean>
</property>
</bean>

<ref bean="checkSchemas"/>
<ref bean="CHECK_std"/>
<ref bean="check_ukreg"/>
Expand Down
1 change: 1 addition & 0 deletions mdx/uk/check_uk_mdattr.xsl
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@
-->
<xsl:template match="mdattr:EntityAttributes/saml:Attribute[@Name='http://macedir.org/entity-category']
/saml:AttributeValue
[. != 'http://refeds.org/category/hide-from-discovery']
[. != 'http://www.geant.net/uri/dataprotection-code-of-conduct/v1']
">
<xsl:call-template name="error">
Expand Down

0 comments on commit 2855ed2

Please sign in to comment.