in auth/kerberos/src/krb.cpp [429:463]
std::list<std::string> renew_kerberos_tickets_domainless( std::string krb_files_dir,
std::string domain_name,
std::string username,
std::string password,
CF_logger& cf_logger )
{
std::list<std::string> renewed_krb_ticket_paths;
// identify the metadata files in the krb directory
std::vector<std::string> metadatafiles = get_meta_data_file_paths( krb_files_dir );
// read the information of service account from the files
for ( auto file_path : metadatafiles )
{
std::list<krb_ticket_info_t*> krb_ticket_info_list = read_meta_data_json( file_path );
// refresh the kerberos tickets for the service accounts, if tickets ready for
// renewal
for ( auto krb_ticket : krb_ticket_info_list )
{
std::string domainlessuser = krb_ticket->domainless_user;
if ( !username.empty() && username == domainlessuser )
{
std::string renewed_ticket_path =
renew_gmsa_ticket( krb_ticket, domain_name, username, password, cf_logger );
if ( !renewed_krb_ticket_paths.empty() )
{
renewed_krb_ticket_paths.push_back( renewed_ticket_path );
}
}
}
}
return renewed_krb_ticket_paths;
}