- * Returns a set of attribute IDs to use as a REMOTE_USER value.
- * <p>The first attribute with a value (and only a single value) will be used.
+ * Returns an array of attribute IDs to use as a REMOTE_USER value, in order of preference.
+ *
+ * @return an array of attribute IDs, possibly empty
+ */
+ virtual const std::vector<std::string>& getRemoteUserAttributeIds() const=0;
+
+ /**
+ * Ensures no value exists for a request header, allowing for application-specific customization.
+ *
+ * @param request SP request to modify
+ * @param rawname raw name of header to clear
+ * @param cginame CGI-equivalent name of header, <strong>MUST</strong> begin with "HTTP_".
+ */
+ virtual void clearHeader(SPRequest& request, const char* rawname, const char* cginame) const;
+
+ /**
+ * Sets a value for a request header allowing for application-specific customization.