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:
parent
ee1f0914ff
commit
e112dc1641
31
examples/auth/Makefile
Normal file
31
examples/auth/Makefile
Normal 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
59
examples/auth/auth_skel.c
Normal 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);
|
||||
}
|
Loading…
Reference in New Issue
Block a user