Skip to Content.
Sympa Menu

mace-opensaml-users - Re: Problems signing/validating metadata

Subject: OpenSAML user discussion

List archive

Re: Problems signing/validating metadata


Chronological Thread 
  • From: Brent Putman <>
  • To:
  • Subject: Re: Problems signing/validating metadata
  • Date: Tue, 12 Feb 2008 17:50:07 -0500

Chad, I think you're confusing RoleDescriptor with the EndpointType's (which BTW, for everyone else, themselves actually aren't xs:anyType, but have wildcard <any> elements and <anyAttribute> and we implement in a similar manner as the xs:anyType's).

In the metadata schema, RoleDescriptorType is just a standard global, named type. But it's abstract, and therefore so are the corresponding opensaml2 classes (impl, marshaller, unmarshaller), so that's why there's no builder - you can't build an element with that default type or with an explicit type declaration of xsi:type="RoleDescriptorType".

This is what you want to consult. It may be a little out of date.
https://spaces.internet2.edu/display/SHIB/OSTwoDeveloperManual

More specifically:

You need to extend the RoleDescriptor interface with a new interface that represents the things in your extension content model for the OnlineCADescriptor. Be sure to override the TYPE_LOCAL_NAME and TYPE_NAME constants.

Then supply a new non-abstract impl, which implements the new interface and extends RoleDescriptorImpl. Also extend RoleDescriptorMarshaller and -Unmarshaller appropriately.

Then supply a builder that builds the object.

Take a look at our code for one of the concrete SAML 2 role descriptors for an example, e.g. AttributeAuthorityDescriptor.

Also, you need to implement providers for whatever other new types/elements you may have defined as content of the role descriptor, such as egmd:OnlineCAService (looks like maybe a new type by extension of EndpointType?).

Finally register those new providers in a new config file and load the new providers into the runtime Configuration, either by extending DefaultBootstrap, or by using XMLConfigurator directly.


--Brent



Chad La Joie wrote:
<RoleDescriptor> is an any type. See the documentation on the OpenSAML user's manual.

https://spaces.internet2.edu/display/SHIB/OSTwoUsrManJavaAnyTypes

Manuela Stanica wrote:
Chad La Joie wrote:

Your XML is wrong. The metadata spec doesn't allow for new elements within a EntityDescriptor. If you create a new role you have to use <RoleDescriptor/> with an XSI type corresponding to your extension. So you'd have something like

<RoleDescriptor xsi:type="egmd:OnlineCADescriptor" />

When I first looked as how to go about including an OnlineCADescriptor I did want to build a RoleDescriptor but couldn't find any RoleDescriptorBuilder. So how can I create/build that element in order to inlcude it and marshall it in the metadata?

Manuela




Archive powered by MHonArc 2.6.16.

Top of Page