in src/authentication/adfs/adfs.cc [102:127]
std::vector<std::string> AdfsCredentialsProvider::get_input_tags_from_html(const std::string& body) {
std::unordered_set<std::string> hash_set;
std::vector<std::string> retval;
std::smatch matches;
std::regex pattern(INPUT_TAG_PATTERN);
std::string source = body;
while (std::regex_search(source,matches,pattern)) {
std::string tag = matches.str(0);
std::string tag_name = get_value_by_key(tag, std::string("name"));
DLOG(INFO) << "Tag [" << tag << "], Tag Name [" << tag_name << "]";
std::transform(tag_name.begin(), tag_name.end(), tag_name.begin(), [](unsigned char c) {
return std::tolower(c);
});
if (!tag_name.empty() && !hash_set.contains(tag_name)) {
hash_set.insert(tag_name);
retval.push_back(tag);
DLOG(INFO) << "Saved input_tag: " << tag;
}
source = matches.suffix().str();
}
DLOG(INFO) << "Input tags vector size: " << retval.size();
return retval;
}