Make stroke user-creds work with XAuth configs
This commit is contained in:
@@ -1179,8 +1179,8 @@ METHOD(stroke_config_t, set_user_credentials, void,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* replace/set the username in the first EAP auth_cfg, also look for a
|
/* replace/set the username in the first EAP/XAuth auth_cfg, also look for
|
||||||
* suitable remote ID.
|
* a suitable remote ID.
|
||||||
* note that adding the identity here is not fully thread-safe as the
|
* note that adding the identity here is not fully thread-safe as the
|
||||||
* peer_cfg and in turn the auth_cfg could be in use. for the default use
|
* peer_cfg and in turn the auth_cfg could be in use. for the default use
|
||||||
* case (setting user credentials before upping the connection) this will
|
* case (setting user credentials before upping the connection) this will
|
||||||
@@ -1199,16 +1199,25 @@ METHOD(stroke_config_t, set_user_credentials, void,
|
|||||||
}
|
}
|
||||||
|
|
||||||
auth_class = (uintptr_t)auth_cfg->get(auth_cfg, AUTH_RULE_AUTH_CLASS);
|
auth_class = (uintptr_t)auth_cfg->get(auth_cfg, AUTH_RULE_AUTH_CLASS);
|
||||||
if (auth_class == AUTH_CLASS_EAP)
|
if (auth_class == AUTH_CLASS_EAP || auth_class == AUTH_CLASS_XAUTH)
|
||||||
{
|
{
|
||||||
auth_cfg->add(auth_cfg, AUTH_RULE_EAP_IDENTITY, id->clone(id));
|
if (auth_class == AUTH_CLASS_EAP)
|
||||||
/* if aaa_identity is specified use that as remote ID */
|
|
||||||
identity = auth_cfg->get(auth_cfg, AUTH_RULE_AAA_IDENTITY);
|
|
||||||
if (identity && identity->get_type(identity) != ID_ANY)
|
|
||||||
{
|
{
|
||||||
gw = identity;
|
auth_cfg->add(auth_cfg, AUTH_RULE_EAP_IDENTITY, id->clone(id));
|
||||||
|
/* if aaa_identity is specified use that as remote ID */
|
||||||
|
identity = auth_cfg->get(auth_cfg, AUTH_RULE_AAA_IDENTITY);
|
||||||
|
if (identity && identity->get_type(identity) != ID_ANY)
|
||||||
|
{
|
||||||
|
gw = identity;
|
||||||
|
}
|
||||||
|
DBG1(DBG_CFG, " configured EAP-Identity %Y", id);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
auth_cfg->add(auth_cfg, AUTH_RULE_XAUTH_IDENTITY,
|
||||||
|
id->clone(id));
|
||||||
|
DBG1(DBG_CFG, " configured XAuth username %Y", id);
|
||||||
}
|
}
|
||||||
DBG1(DBG_CFG, " configured EAP-Identity %Y", id);
|
|
||||||
type = SHARED_EAP;
|
type = SHARED_EAP;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user