Record values from RequestedAttributes #2581
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The SAML XML parser ignores any
<saml:AttributeValue>statements within a<md:RequestedAttribute>element. However, the SAML metadata spec clearly allows these (cf 2.4.4.2) and SimpleSAMLphp's own core:AttributeLimit filter can use them to limit attribute values.This change adds support for parsing the child AttributeValue elements, and renders them as an associative array as documented by core:AttributeLimit. It also interoperates with SANLBuilder to re-render the XML version of the metadata correctly with any AttributeValues intact.
The lack of support for AttributeValue in the SAMLParser class is the root cause of simplesamlphp/simplesamlphp-module-metarefresh#51. Thus, fixing this also resolves that issue.
There are also some minor cosmetic changes to variable names to make their use in parseAttributeConsumerService() consistent with the handling of EntityAttributes in processExtensions().