diff options
author | Andrew Bartlett <abartlet@samba.org> | 2008-05-05 15:23:57 +1000 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2008-05-05 15:23:57 +1000 |
commit | 7ee76eeae5b3e9e5f5b226039e7276897f5e6764 (patch) | |
tree | d2de6ee6008582b0d521a8b6a446fd2886aa8a37 /source4/auth/ntlm/auth_anonymous.c | |
parent | 2c95244f1115c87a8ec3101427680a834d71ceaf (diff) | |
download | samba-7ee76eeae5b3e9e5f5b226039e7276897f5e6764.tar.gz samba-7ee76eeae5b3e9e5f5b226039e7276897f5e6764.tar.bz2 samba-7ee76eeae5b3e9e5f5b226039e7276897f5e6764.zip |
Move NTLM authentication details into auth/ntlm
This should help clarify the role of the various files around here
(done on Jelmer's request).
Andrew Bartlett
(This used to be commit efa399037511ced8978f2e7661a71aac7a384883)
Diffstat (limited to 'source4/auth/ntlm/auth_anonymous.c')
-rw-r--r-- | source4/auth/ntlm/auth_anonymous.c | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/source4/auth/ntlm/auth_anonymous.c b/source4/auth/ntlm/auth_anonymous.c new file mode 100644 index 0000000000..b93c7c2008 --- /dev/null +++ b/source4/auth/ntlm/auth_anonymous.c @@ -0,0 +1,78 @@ +/* + Unix SMB/CIFS implementation. + + Anonymous Authentification + + Copyright (C) Stefan Metzmacher 2004-2005 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include "includes.h" +#include "auth/auth.h" +#include "auth/auth_proto.h" +#include "param/param.h" + +/** + * Return a anonymous logon for anonymous users (username = "") + * + * Typically used as the first module in the auth chain, this allows + * anonymou logons to be dealt with in one place. Non-anonymou logons 'fail' + * and pass onto the next module. + **/ +static NTSTATUS anonymous_want_check(struct auth_method_context *ctx, + TALLOC_CTX *mem_ctx, + const struct auth_usersupplied_info *user_info) +{ + if (user_info->client.account_name && *user_info->client.account_name) { + return NT_STATUS_NOT_IMPLEMENTED; + } + + return NT_STATUS_OK; +} + +/** + * Return a anonymous logon for anonymous users (username = "") + * + * Typically used as the first module in the auth chain, this allows + * anonymou logons to be dealt with in one place. Non-anonymou logons 'fail' + * and pass onto the next module. + **/ +static NTSTATUS anonymous_check_password(struct auth_method_context *ctx, + TALLOC_CTX *mem_ctx, + const struct auth_usersupplied_info *user_info, + struct auth_serversupplied_info **_server_info) +{ + return auth_anonymous_server_info(mem_ctx, lp_netbios_name(ctx->auth_ctx->lp_ctx), _server_info); +} + +static const struct auth_operations anonymous_auth_ops = { + .name = "anonymous", + .get_challenge = auth_get_challenge_not_implemented, + .want_check = anonymous_want_check, + .check_password = anonymous_check_password +}; + +_PUBLIC_ NTSTATUS auth_anonymous_init(void) +{ + NTSTATUS ret; + + ret = auth_register(&anonymous_auth_ops); + if (!NT_STATUS_IS_OK(ret)) { + DEBUG(0,("Failed to register 'anonymous' auth backend!\n")); + return ret; + } + + return ret; +} |