plugins_la_SOURCES = \
${common_sources} \
GSSAPIAttributeExtractor.cpp \
+ TemplateAttributeResolver.cpp \
TransformAttributeResolver.cpp
#plugins_lite_la_SOURCES = \
class SHIBSP_DLLLOCAL TransformContext : public ResolutionContext
{
public:
- TransformContext(const Session& session) : m_inputAttributes(&session.getAttributes()) {
- }
-
- TransformContext(const vector<shibsp::Attribute*>* attributes) : m_inputAttributes(attributes) {
+ TransformContext(const vector<Attribute*>* attributes) : m_inputAttributes(attributes) {
}
~TransformContext() {
- for_each(m_attributes.begin(), m_attributes.end(), xmltooling::cleanup<shibsp::Attribute>());
+ for_each(m_attributes.begin(), m_attributes.end(), xmltooling::cleanup<Attribute>());
}
- const vector<shibsp::Attribute*>* getInputAttributes() const {
+ const vector<Attribute*>* getInputAttributes() const {
return m_inputAttributes;
}
- vector<shibsp::Attribute*>& getResolvedAttributes() {
+ vector<Attribute*>& getResolvedAttributes() {
return m_attributes;
}
vector<opensaml::Assertion*>& getResolvedAssertions() {
}
private:
- const vector<shibsp::Attribute*>* m_inputAttributes;
- vector<shibsp::Attribute*> m_attributes;
+ const vector<Attribute*>* m_inputAttributes;
+ vector<Attribute*> m_attributes;
static vector<opensaml::Assertion*> m_assertions; // empty dummy
};
const XMLCh* authncontext_class=nullptr,
const XMLCh* authncontext_decl=nullptr,
const vector<const opensaml::Assertion*>* tokens=nullptr,
- const vector<shibsp::Attribute*>* attributes=nullptr
+ const vector<Attribute*>* attributes=nullptr
) const {
// Make sure new method gets run.
return createResolutionContext(application, nullptr, issuer, protocol, nameid, authncontext_class, authncontext_decl, tokens, attributes);
const XMLCh* authncontext_class=nullptr,
const XMLCh* authncontext_decl=nullptr,
const vector<const opensaml::Assertion*>* tokens=nullptr,
- const vector<shibsp::Attribute*>* attributes=nullptr
+ const vector<Attribute*>* attributes=nullptr
) const {
return new TransformContext(attributes);
}
ResolutionContext* createResolutionContext(const Application& application, const Session& session) const {
- return new TransformContext(session);
+ return new TransformContext(&session.getAttributes());
}
void resolveAttributes(ResolutionContext& ctx) const;
#ifdef HAVE_GSSAPI_NAMINGEXTS
PluginManager<AttributeExtractor,string,const DOMElement*>::Factory GSSAPIExtractorFactory;
#endif
+ PluginManager<AttributeResolver,string,const DOMElement*>::Factory TemplateAttributeResolverFactory;
PluginManager<AttributeResolver,string,const DOMElement*>::Factory TransformAttributeResolverFactory;
};
extern "C" int PLUGINS_EXPORTS xmltooling_extension_init(void*)
{
+ SPConfig& conf = SPConfig::getConfig();
#ifdef HAVE_GSSAPI_NAMINGEXTS
- SPConfig::getConfig().AttributeExtractorManager.registerFactory("GSSAPI", GSSAPIExtractorFactory);
+ conf.AttributeExtractorManager.registerFactory("GSSAPI", GSSAPIExtractorFactory);
static const XMLCh _GSSAPIName[] = UNICODE_LITERAL_10(G,S,S,A,P,I,N,a,m,e);
static const XMLCh _GSSAPIContext[] = UNICODE_LITERAL_13(G,S,S,A,P,I,C,o,n,t,e,x,t);
XMLObjectBuilder::registerBuilder(xmltooling::QName(shibspconstants::SHIB2ATTRIBUTEMAP_NS, _GSSAPIName), new AnyElementBuilder());
XMLObjectBuilder::registerBuilder(xmltooling::QName(shibspconstants::SHIB2ATTRIBUTEMAP_NS, _GSSAPIContext), new AnyElementBuilder());
#endif
- SPConfig::getConfig().AttributeResolverManager.registerFactory("Transform", TransformAttributeResolverFactory);
+ conf.AttributeResolverManager.registerFactory("Template", TemplateAttributeResolverFactory);
+ conf.AttributeResolverManager.registerFactory("Transform", TransformAttributeResolverFactory);
return 0; // signal success
}
<ItemGroup>
<ClCompile Include="GSSAPIAttributeExtractor.cpp" />
<ClCompile Include="plugins.cpp" />
+ <ClCompile Include="TemplateAttributeResolver.cpp" />
<ClCompile Include="TransformAttributeResolver.cpp" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="GSSAPIAttributeExtractor.cpp" />
<ClCompile Include="plugins.cpp" />
<ClCompile Include="TransformAttributeResolver.cpp" />
+ <ClCompile Include="TemplateAttributeResolver.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="internal.h" />