mirror of
https://github.com/samba-team/samba.git
synced 2025-01-26 10:04:02 +03:00
dbd2688c90
much closer. This changes PIDL to allow a subcontext to have a pad8 flag, saying to pad behind to an 8 byte boundary. This is the only way I can explain the 4 trainling zeros in the signature struct. Far more importantly, the PAC code is now under self-test, both in creating/parsing our own PAC, but also a PAC from my win2k3 server. This required changing auth_anonymous, because I wanted to reuse the anonymous 'server_info' generation code. I'm still having trouble with PIDL, particulary as surrounds value(), but I'll follow up on the list. Andrew Bartlett (This used to be commit 50a54bf4e9bf04d2a8e0aebb3482a2ff655c8bbb)
65 lines
1.9 KiB
C
65 lines
1.9 KiB
C
/*
|
|
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 2 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, write to the Free Software
|
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
*/
|
|
|
|
#include "includes.h"
|
|
#include "auth/auth.h"
|
|
#include "librpc/gen_ndr/ndr_samr.h"
|
|
#include "librpc/gen_ndr/ndr_security.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_check_password(struct auth_method_context *ctx,
|
|
TALLOC_CTX *mem_ctx,
|
|
const struct auth_usersupplied_info *user_info,
|
|
struct auth_serversupplied_info **_server_info)
|
|
{
|
|
if (user_info->account_name && *user_info->account_name) {
|
|
return NT_STATUS_NOT_IMPLEMENTED;
|
|
}
|
|
|
|
return auth_anonymous_server_info(mem_ctx, _server_info);
|
|
}
|
|
|
|
static struct auth_operations anonymous_auth_ops = {
|
|
.name = "anonymous",
|
|
.get_challenge = auth_get_challenge_not_implemented,
|
|
.check_password = anonymous_check_password
|
|
};
|
|
|
|
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;
|
|
}
|