const struct var_expand_table
auth_request_var_expand_static_tab[] = {
{ .key = "user", .value = NULL },
- { .key = "username", .value = NULL },
- { .key = "domain", .value = NULL },
{ .key = "protocol", .value = NULL },
{ .key = "home", .value = NULL },
{ .key = "local_ip", .value = NULL },
{ .key = "remote_port", .value = NULL },
{ .key = "cert", .value = NULL },
{ .key = "login_user", .value = NULL },
- { .key = "login_username", .value = NULL },
- { .key = "login_domain", .value = NULL },
{ .key = "session", .value = NULL },
{ .key = "real_local_ip", .value = NULL },
{ .key = "real_remote_ip", .value = NULL },
{ .key = "master_user", .value = NULL },
{ .key = "session_pid", .value = NULL },
{ .key = "original_user", .value = NULL },
- { .key = "original_username", .value = NULL },
- { .key = "original_domain", .value = NULL },
{ .key = "auth_user", .value = NULL },
- { .key = "auth_username", .value = NULL },
- { .key = "auth_domain", .value = NULL },
{ .key = "local_name", .value = NULL },
{ .key = "client_id", .value = NULL },
{ .key = "ssl_ja3_hash", .value = NULL },
username = "";
var_expand_table_set_value(tab, "user", username);
- var_expand_table_set_value(tab, "username", t_strcut(username, '@'));
- var_expand_table_set_value(tab, "domain", i_strchr_to_next(username, '@'));
var_expand_table_set_value(tab, "protocol", fields->protocol);
/* tab['home'] = we have no home dir */
if (fields->local_ip.family != 0) {
var_expand_table_set_value(tab, "cert",
fields->valid_client_cert ? "valid" : "");
- if (fields->requested_login_user != NULL) {
- const char *login_user = fields->requested_login_user;
-
- var_expand_table_set_value(tab, "login_user", login_user);
- var_expand_table_set_value(tab, "login_username",
- t_strcut(login_user, '@'));
- var_expand_table_set_value(tab, "login_domain",
- i_strchr_to_next(login_user, '@'));
- }
+ var_expand_table_set_value(tab, "login_user", fields->requested_login_user);
var_expand_table_set_value(tab, "session", fields->session_id);
if (fields->real_local_ip.family != 0) {
orig_user = fields->original_username != NULL ?
fields->original_username : username;
var_expand_table_set_value(tab, "original_user", orig_user);
- var_expand_table_set_value(tab, "original_username",
- t_strcut(orig_user, '@'));
- var_expand_table_set_value(tab, "original_domain",
- i_strchr_to_next(orig_user, '@'));
auth_user = fields->master_user != NULL ?
fields->master_user : orig_user;
var_expand_table_set_value(tab, "auth_user", auth_user);
- var_expand_table_set_value(tab, "auth_username",
- t_strcut(auth_user, '@'));
- var_expand_table_set_value(tab, "auth_domain",
- i_strchr_to_next(auth_user, '@'));
var_expand_table_set_value(tab, "local_name", fields->local_name);
var_expand_table_set_value(tab, "client_id", fields->client_id);
var_expand_table_set_value(tab, "ssl_ja3_hash", fields->ssl_ja3_hash);
const struct var_expand_table
auth_request_var_expand_static_tab[AUTH_REQUEST_VAR_TAB_COUNT + 1] = {
- /* these 3 must be in this order */
{ .key = "user", .value = NULL },
- { .key = "username", .value = NULL },
- { .key = "domain", .value = NULL },
{ .key = "a", .value = NULL },
{ .key = "b", .value = NULL },
static const struct {
const char *in, *out;
} tests[] = {
- { "%{username}@%{domain}", "%{user}" },
- { "%{username}@%{domain}", "%{user}" },
- { "%{username}%{domain}%{user}", "%{user}" },
- { "%{username}", "%{username}" },
- { "%{domain}", "%{domain}" },
+ { "%{user|username}", "%{user}" },
+ { "%{user|domain}", "%{user}" },
{ "%{a}%{b}%{user}", "%{user}\t%{a}\t%{b}" },
{ "foo%{a | substr(5, 5) }bar", "%{a}" },
static void test_auth_request_var_expand_keys(void)
{
static const char *test_input_long =
- "%{user}\n%{username}\n%{domain}\n%{protocol}\n%{home}\n"
+ "%{user}\n%{user | username}\n%{user | domain}\n%{protocol}\n%{home}\n"
"%{local_ip}\n%{remote_ip}\n"
"%{client_pid}\n%{password}\n%{mechanism}\n%{secured}\n"
"%{local_port}\n%{remote_port}\n%{cert}\n";
static void test_auth_request_var_expand_long(void)
{
static const char *test_input =
- "%{login_user}\n%{login_username}\n%{login_domain}\n%{session}\n"
+ "%{login_user}\n%{login_user | username}\n%{login_user | domain}\n%{session}\n"
"%{real_local_ip}\n%{real_remote_ip}\n"
"%{real_local_port}\n%{real_remote_port}\n"
"%{master_user}\n%{session_pid}\n"
- "%{original_user}\n%{original_username}\n%{original_domain}\n";
+ "%{original_user}\n%{original_user | username}\n%{original_user | domain}\n";
static const char *test_output =
"+loginuser@+logindomain1@+logindomain2\n+loginuser\n+logindomain1@+logindomain2\n+session\n"
"13.81.174.20\n13.81.174.21\n"
{ "-foo@-domain1@-domain2", "+foo\n+domain1@+domain2\n+domain1\n+domain2\n+foo@+domain1@+domain2" }
};
static const char *test_input =
- "%{username}\n%{domain}\n%{domain_first}\n%{domain_last}\n%{user}";
+ "%{user | username}\n%{user | domain}\n%{domain_first}\n%{domain_last}\n%{user}";
string_t *str = t_str_new(64);
const char *error;
unsigned int i;