mirror of
https://github.com/samba-team/samba.git
synced 2025-03-27 22:50:26 +03:00
s3:passdb: Add secrets_store_creds()
Signed-off-by: Andreas Schneider <asn@samba.org> Reviewed-by: Ralph Boehme <slow@samba.org>
This commit is contained in:
parent
2bfe37e069
commit
2cab43cfca
@ -56,6 +56,8 @@
|
||||
#define SECRETS_AUTH_DOMAIN "SECRETS/AUTH_DOMAIN"
|
||||
#define SECRETS_AUTH_PASSWORD "SECRETS/AUTH_PASSWORD"
|
||||
|
||||
struct cli_credentials;
|
||||
|
||||
/* structure for storing machine account password
|
||||
(ie. when samba server is member of a domain */
|
||||
struct machine_acct_pass {
|
||||
@ -89,6 +91,7 @@ struct db_context *secrets_db_ctx(void);
|
||||
void secrets_shutdown(void);
|
||||
void *secrets_fetch(const char *key, size_t *size);
|
||||
bool secrets_store(const char *key, const void *data, size_t size);
|
||||
bool secrets_store_creds(struct cli_credentials *creds);
|
||||
bool secrets_delete_entry(const char *key);
|
||||
bool secrets_delete(const char *key);
|
||||
|
||||
|
@ -31,6 +31,7 @@
|
||||
#include "dbwrap/dbwrap_open.h"
|
||||
#include "../libcli/security/security.h"
|
||||
#include "util_tdb.h"
|
||||
#include "auth/credentials/credentials.h"
|
||||
|
||||
#undef DBGC_CLASS
|
||||
#define DBGC_CLASS DBGC_PASSDB
|
||||
@ -143,6 +144,49 @@ bool secrets_store(const char *key, const void *data, size_t size)
|
||||
return NT_STATUS_IS_OK(status);
|
||||
}
|
||||
|
||||
bool secrets_store_creds(struct cli_credentials *creds)
|
||||
{
|
||||
const char *p = NULL;
|
||||
bool ok;
|
||||
|
||||
p = cli_credentials_get_username(creds);
|
||||
if (p == NULL) {
|
||||
return false;
|
||||
}
|
||||
|
||||
ok = secrets_store(SECRETS_AUTH_USER, p, strlen(p) + 1);
|
||||
if (!ok) {
|
||||
DBG_ERR("Failed storing auth user name\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
p = cli_credentials_get_domain(creds);
|
||||
if (p == NULL) {
|
||||
return false;
|
||||
}
|
||||
|
||||
ok = secrets_store(SECRETS_AUTH_DOMAIN, p, strlen(p) + 1);
|
||||
if (!ok) {
|
||||
DBG_ERR("Failed storing auth domain name\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
p = cli_credentials_get_password(creds);
|
||||
if (p == NULL) {
|
||||
return false;
|
||||
}
|
||||
|
||||
ok = secrets_store(SECRETS_AUTH_PASSWORD, p, strlen(p) + 1);
|
||||
if (!ok) {
|
||||
DBG_ERR("Failed storing auth password\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/* delete a secets database entry
|
||||
*/
|
||||
|
@ -490,6 +490,7 @@ bld.SAMBA3_LIBRARY('secrets3',
|
||||
dbwrap
|
||||
krb5samba
|
||||
LIBCLI_AUTH
|
||||
samba-credentials
|
||||
''',
|
||||
private_library=True)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user