1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-23 17:34:34 +03:00

Add example authentication module

This commit is contained in:
Jelmer Vernooij 0001-01-01 00:00:00 +00:00
parent ee1f0914ff
commit e112dc1641
2 changed files with 90 additions and 0 deletions

31
examples/auth/Makefile Normal file
View File

@ -0,0 +1,31 @@
# Makefile for samba-pdb examples
# Variables
CC = gcc
LIBTOOL = libtool
SAMBA_SRC = ../../source
SAMBA_INCL = ../../source/include
UBIQX_SRC = ../../source/ubiqx
SMBWR_SRC = ../../source/smbwrapper
CFLAGS = -I$(SAMBA_SRC) -I$(SAMBA_INCL) -I$(UBIQX_SRC) -I$(SMBWR_SRC) -Wall -g
AUTH_OBJS = auth_skel.so
# Default target
default: $(AUTH_OBJS)
# Pattern rules
%.so: %.lo
$(LIBTOOL) $(CC) -shared -o $@ $< $(LDFLAGS)
%.lo: %.c
$(LIBTOOL) $(CC) $(CPPFLAGS) $(CFLAGS) -c $<
# Misc targets
clean:
rm -rf .libs
rm -f core *~ *% *.bak \
$(AUTH_OBJS) $(AUTH_OBJS:.so=.o) $(AUTH_OBJS:.so=.lo)

59
examples/auth/auth_skel.c Normal file
View File

@ -0,0 +1,59 @@
/*
Unix SMB/CIFS implementation.
Password and authentication handling
Copyright (C) Andrew Bartlett 2001
Copyright (C) Jelmer Vernooij 2003
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"
#undef DBGC_CLASS
#define DBGC_CLASS DBGC_AUTH
static NTSTATUS check_skel_security(const struct auth_context *auth_context,
void *my_private_data,
TALLOC_CTX *mem_ctx,
const auth_usersupplied_info *user_info,
auth_serversupplied_info **server_info)
{
if (!user_info || !auth_context) {
return NT_STATUS_LOGON_FAILURE;
}
/* Insert your authentication checking code here,
* and return NT_STATUS_OK if authentication succeeds */
/* For now, just refuse all connections */
return NT_STATUS_LOGON_FAILURE;
}
/* module initialisation */
NTSTATUS auth_init_skel(struct auth_context *auth_context, const char *param, auth_methods **auth_method)
{
if (!make_auth_methods(auth_context, auth_method)) {
return NT_STATUS_NO_MEMORY;
}
(*auth_method)->auth = check_skel_security;
(*auth_method)->name = "skel";
return NT_STATUS_OK;
}
NTSTATUS init_module(void)
{
return smb_register_auth(AUTH_INTERFACE_VERSION, "skel", auth_init_skel);
}