- virtual const char* getProviderId() const=0;
- virtual std::pair<const char*,const saml::SAMLSubject*> getSubject(bool xml=true, bool obj=false) const=0;
- virtual const char* getAuthnContext() const=0;
- virtual std::pair<const char*,const saml::SAMLResponse*> getTokens(bool xml=true, bool obj=false) const=0;
- virtual std::pair<const char*,const saml::SAMLResponse*> getFilteredTokens(bool xml=true, bool obj=false) const=0;
- */
+
+ /**
+ * Returns the entityID of the IdP that initiated the session.
+ *
+ * @return the IdP's entityID
+ */
+ virtual const char* getEntityID() const=0;
+
+ /**
+ * Returns the protocol family used to initiate the session.
+ *
+ * @return the protocol constant that represents the general SSO protocol used
+ */
+ virtual const char* getProtocol() const=0;
+
+ /**
+ * Returns the UTC timestamp on the authentication event at the IdP.
+ *
+ * @return the UTC authentication timestamp
+ */
+ virtual const char* getAuthnInstant() const=0;
+
+#ifndef SHIBSP_LITE
+ /**
+ * Returns the NameID associated with a session.
+ *
+ * <p>SAML 1.x identifiers will be promoted to the 2.0 type.
+ *
+ * @return a SAML 2.0 NameID associated with the session, if any
+ */
+ virtual const opensaml::saml2::NameID* getNameID() const=0;
+#endif
+
+ /**
+ * Returns the SessionIndex provided with the session.
+ *
+ * @return the SessionIndex from the original SSO assertion, if any
+ */
+ virtual const char* getSessionIndex() const=0;
+
+ /**
+ * Returns a URI containing an AuthnContextClassRef provided with the session.
+ *
+ * <p>SAML 1.x AuthenticationMethods will be returned as class references.
+ *
+ * @return a URI identifying the authentication context class
+ */
+ virtual const char* getAuthnContextClassRef() const=0;
+
+ /**
+ * Returns a URI containing an AuthnContextDeclRef provided with the session.
+ *
+ * @return a URI identifying the authentication context declaration
+ */
+ virtual const char* getAuthnContextDeclRef() const=0;
+
+ /**
+ * Returns the resolved attributes associated with the session.
+ *
+ * @return an immutable array of attributes
+ */
+ virtual const std::vector<Attribute*>& getAttributes() const=0;
+
+ /**
+ * Returns the resolved attributes associated with the session, indexed by ID
+ *
+ * @return an immutable map of attributes keyed by attribute ID
+ */
+ virtual const std::multimap<std::string,const Attribute*>& getIndexedAttributes() const=0;
+
+ /**
+ * Returns the identifiers of the assertion(s) cached by the session.
+ *
+ * <p>The SSO assertion is guaranteed to be first in the set.
+ *
+ * @return an immutable array of AssertionID values
+ */
+ virtual const std::vector<const char*>& getAssertionIDs() const=0;
+
+#ifndef SHIBSP_LITE
+ /**
+ * Adds additional attributes to the session.
+ *
+ * @param attributes reference to an array of Attributes to cache (will be freed by cache)
+ */
+ virtual void addAttributes(const std::vector<Attribute*>& attributes)=0;
+
+ /**
+ * Returns an assertion cached by the session.
+ *
+ * @param id identifier of the assertion to retrieve
+ * @return pointer to assertion, or NULL
+ */
+ virtual const opensaml::Assertion* getAssertion(const char* id) const=0;
+
+ /**
+ * Stores an assertion in the session.
+ *
+ * @param assertion pointer to an assertion to cache (will be freed by cache)
+ */
+ virtual void addAssertion(opensaml::Assertion* assertion)=0;
+#endif