| Summary: | gridshib-saml-issuer --infile creates wrong Advice | ||
|---|---|---|---|
| Product: | GridShib | Reporter: | Benjamin Henne <henne@rvs.uni-hannover.de> |
| Component: | SAML/Binding Tools | Assignee: | Tom Scavo <trscavo@gmail.com> |
| Status: | NEW | ||
| Severity: | normal | CC: | gridshib-dev@globus.org |
| Priority: | P3 | ||
| Version: | 0.5 | ||
| Target Milestone: | beta | ||
| Hardware: | PC | ||
| OS: | Linux | ||
| Bug Depends on: | |||
| Bug Blocks: | 6572, 6641 | ||
(In reply to comment #0) > > Assertion elements or elements from other namespaces with lax schema validation > can be inserted into Advice as described in 2.3.2.2 of [SAMLCore1.0] or later. > Maybe this is the reason for the first issue? Yes, this is precisely the cause of the bug. OpenSAML 1.1 (on which our so-called Globus SAML Library is based) parses Advice as follows: if (advice != null) { for (Iterator i = advice.iterator(); i.hasNext(); ) { Object obj=i.next(); if (obj instanceof String && ((String)obj).length() > 0) this.advice.add(obj); else if (obj instanceof SAMLAssertion) this.advice.add(((SAMLAssertion)obj).setParent(this)); else if (obj instanceof Element && ((Element)obj).getParentNode()==null && !((Element)obj).getNamespaceURI().equals(XML.SAML_NS)) this.advice.add(obj); else throw new IllegalArgumentException("SAMLAssertion() can only process advice Strings, SAMLAssertions, or DOM elements from a non-saml namespace"); } } This implies that the CLI must distinguish between arbitrary strings and DOM elements, which currently it does not.