mirror of
https://github.com/samba-team/samba.git
synced 2024-12-22 13:34:15 +03:00
auth/credentials: let cli_credentials_parse_string() always reset username and domain
If cli_credentials_parse_string() is used we should no longer use any guessed values and need to make sure username and domain are reset if principal and realm are set. Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
This commit is contained in:
parent
86558b5ce8
commit
6b18ac6915
@ -781,6 +781,14 @@ _PUBLIC_ void cli_credentials_parse_string(struct cli_credentials *credentials,
|
||||
}
|
||||
|
||||
if ((p = strchr_m(uname,'@'))) {
|
||||
/*
|
||||
* We also need to set username and domain
|
||||
* in order to undo the effect of
|
||||
* cli_credentials_guess().
|
||||
*/
|
||||
cli_credentials_set_username(credentials, uname, obtained);
|
||||
cli_credentials_set_domain(credentials, "", obtained);
|
||||
|
||||
cli_credentials_set_principal(credentials, uname, obtained);
|
||||
*p = 0;
|
||||
cli_credentials_set_realm(credentials, p+1, obtained);
|
||||
|
@ -229,8 +229,8 @@ class CredentialsTests(samba.tests.TestCaseInTempDir):
|
||||
os.environ["USER"] = "env_user"
|
||||
creds.guess(lp)
|
||||
creds.parse_string("user@samba.org")
|
||||
self.assertEqual(creds.get_username(), "env_user")
|
||||
self.assertEqual(creds.get_domain(), lp.get("workgroup").upper())
|
||||
self.assertEqual(creds.get_username(), "user@samba.org")
|
||||
self.assertEqual(creds.get_domain(), "")
|
||||
self.assertEqual(creds.get_realm(), "SAMBA.ORG")
|
||||
self.assertEqual(creds.get_principal(), "user@samba.org")
|
||||
self.assertEqual(creds.is_anonymous(), False)
|
||||
@ -270,8 +270,8 @@ class CredentialsTests(samba.tests.TestCaseInTempDir):
|
||||
os.environ["USER"] = "env_user"
|
||||
creds.guess(lp)
|
||||
creds.parse_string("user@samba.org%pass")
|
||||
self.assertEqual(creds.get_username(), "env_user")
|
||||
self.assertEqual(creds.get_domain(), lp.get("workgroup").upper())
|
||||
self.assertEqual(creds.get_username(), "user@samba.org")
|
||||
self.assertEqual(creds.get_domain(), "")
|
||||
self.assertEqual(creds.get_password(), "pass")
|
||||
self.assertEqual(creds.get_realm(), "SAMBA.ORG")
|
||||
self.assertEqual(creds.get_principal(), "user@samba.org")
|
||||
|
Loading…
Reference in New Issue
Block a user