std::list renew_kerberos_tickets_domainless()

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;
}