class XMLExtractor : public AttributeExtractor, public ReloadableXMLFile
{
public:
- XMLExtractor(const DOMElement* e) : ReloadableXMLFile(e, Category::getInstance(SHIBSP_LOGCAT".AttributeExtractor.XML")) {
+ XMLExtractor(const DOMElement* e) : ReloadableXMLFile(e, Category::getInstance(SHIBSP_LOGCAT ".AttributeExtractor.XML")) {
+ if (m_local && m_lock)
+ m_log.warn("attribute mappings are reloadable; be sure to restart web server when adding new attribute IDs");
background_load();
}
~XMLExtractor() {
name = child->getAttributeNS(nullptr, _aliases);
if (name && *name) {
+ m_log.warn("attribute mapping rule (%s) uses deprecated aliases feature, consider revising", id.get());
auto_ptr_char aliases(name);
string dup(aliases.get());
+ trim(dup);
set<string> new_aliases;
split(new_aliases, dup, is_space(), algorithm::token_compress_on);
set<string>::iterator ru = new_aliases.find("REMOTE_USER");
m_log.warn("skipping alias, REMOTE_USER is a reserved name");
new_aliases.erase(ru);
}
+ decl.second.insert(decl.second.end(), new_aliases.begin(), new_aliases.end());
m_attributeIds.insert(m_attributeIds.end(), new_aliases.begin(), new_aliases.end());
}