*
* @param application reference to Application that owns the eventual Session
* @param issuer issuing metadata of assertion issuer, if known
+ * @param protocol protocol used to establish Session
* @param nameid principal identifier, normalized to SAML 2, if any
- * @param tokens assertions initiating the session, if any
- * @param attributes map of previously resolved attributes, if any
+ * @param authncontext_class method/category of authentication event, if known
+ * @param authncontext_decl specifics of authentication event, if known
+ * @param tokens assertions initiating the Session, if any
+ * @param attributes array of previously resolved attributes, if any
* @return newly created ResolutionContext, owned by caller
*/
virtual ResolutionContext* createResolutionContext(
const Application& application,
const opensaml::saml2md::EntityDescriptor* issuer,
- const opensaml::saml2::NameID* nameid,
+ const XMLCh* protocol,
+ const opensaml::saml2::NameID* nameid=NULL,
+ const XMLCh* authncontext_class=NULL,
+ const XMLCh* authncontext_decl=NULL,
const std::vector<const opensaml::Assertion*>* tokens=NULL,
- const std::multimap<std::string,Attribute*>* attributes=NULL
+ const std::vector<Attribute*>* attributes=NULL
) const=0;
/**
* @throws AttributeResolutionException thrown if there is a problem resolving the attributes for the subject
*/
virtual void resolveAttributes(ResolutionContext& ctx) const=0;
+
+ /**
+ * Populates an array with the set of Attribute IDs that might be generated.
+ *
+ * @param attributes array to populate
+ */
+ virtual void getAttributeIds(std::vector<std::string>& attributes) const=0;
};
#if defined (_MSC_VER)