Identify required/optional attributes in the attributeReleaseContext
Description
Environment
Activity

Tom Zeller November 9, 2016 at 8:20 PM
Resolving as to-be-wired by the deployer.
Should revisit along with guidance regarding the UI.

Tom Zeller November 5, 2016 at 12:37 AM
Well, I think I'm changing my mind back to where I left off here, which is to not wire the predicate and leave that to the deployer.
On today's dev call, I said I was going to write a test and then wire the predicate by instantiation in a view-state (which we agreed on), but ... writing the test was harder than I thought : mocking the context tree and loading attribute-resolver.xml for example. My preference due to time is to write a Selenium/integration test (of course via the testbed since that's how I wrote the thing anyway), but I don't know how to nor want to try to represent "required" in the view template right now, because it only really makes sense for per-attribute consent (which is disabled by default) and I think other folks are working on consent UIs...at least we should copy whatever uApproveJP is doing I would think.
Maybe some UI/accessibility advice would be helpful too.
So I have a simple unit test for the constructor and a null check, but that's it. I should have caught Rod on the dev call today. Apologies for the timing.

Tom Zeller October 24, 2016 at 9:15 PMEdited
r8533 IsAttributeRequiredPredicate
Can be wired via attribute-release-flow.xml :
and used in attribute-release.vm :
Rod Widdowson October 22, 2016 at 9:50 AM
> See net.shibboleth.idp.saml.attribute.mapping.AttributesMapContainer, net.shibboleth.idp.saml.metadata.impl.AttributeMappingNodeProcessor
I missed that. I thought that there should be more. Thanks.
Seems like doing this as an example change to the template post 3.3 makes a lot of sense...
R

Tom Zeller October 21, 2016 at 9:21 PM
Got it. That's way better.
Please consider exposing whether a consentable attribute is marked as required/optional in metadata to the attributeReleaseContext. This would be useful information for per-attribute consent, allowing users to deselect optional attributes. As it is now, per-attribute consent is of limited usefulness since a user doesn't know which attributes they must send through versus which simply add functionality to the service.