Merge pull request #3698 from lcniel/enable_token_with_auto_logon
Allow username-affixed token to be used with INFO_AUTOLOGON flag set in client
This commit is contained in:
+11
-11
@@ -600,17 +600,6 @@ xrdp_sec_process_logon_info(struct xrdp_sec *self, struct stream *s)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (self->rdp_layer->client_info.enable_token_login
|
|
||||||
&& len_user > 0
|
|
||||||
&& len_password == 0
|
|
||||||
&& (sep = g_strchr(self->rdp_layer->client_info.username, '\x1f')) != NULL)
|
|
||||||
{
|
|
||||||
LOG(LOG_LEVEL_DEBUG, "Client supplied a Logon token. Overwriting password with logon token.");
|
|
||||||
g_strncpy(self->rdp_layer->client_info.password, sep + 1,
|
|
||||||
sizeof(self->rdp_layer->client_info.password) - 1);
|
|
||||||
self->rdp_layer->client_info.username[sep - self->rdp_layer->client_info.username] = '\0';
|
|
||||||
self->rdp_layer->client_info.rdp_autologin = 1;
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Skip the password
|
// Skip the password
|
||||||
@@ -620,6 +609,17 @@ xrdp_sec_process_logon_info(struct xrdp_sec *self, struct stream *s)
|
|||||||
}
|
}
|
||||||
in_uint8s(s, len_password + 2);
|
in_uint8s(s, len_password + 2);
|
||||||
}
|
}
|
||||||
|
if (self->rdp_layer->client_info.enable_token_login
|
||||||
|
&& len_user > 0
|
||||||
|
&& len_password == 0
|
||||||
|
&& (sep = g_strchr(self->rdp_layer->client_info.username, '\x1f')) != NULL)
|
||||||
|
{
|
||||||
|
LOG(LOG_LEVEL_DEBUG, "Client supplied a Logon token. Overwriting password with logon token.");
|
||||||
|
g_strncpy(self->rdp_layer->client_info.password, sep + 1,
|
||||||
|
sizeof(self->rdp_layer->client_info.password) - 1);
|
||||||
|
self->rdp_layer->client_info.username[sep - self->rdp_layer->client_info.username] = '\0';
|
||||||
|
self->rdp_layer->client_info.rdp_autologin = 1;
|
||||||
|
}
|
||||||
if (self->rdp_layer->client_info.domain_user_separator[0] != '\0'
|
if (self->rdp_layer->client_info.domain_user_separator[0] != '\0'
|
||||||
&& self->rdp_layer->client_info.domain[0] != '\0')
|
&& self->rdp_layer->client_info.domain[0] != '\0')
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user