1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-27 03:21:53 +03:00
samba-mirror/source3/auth
Volker Lendecke c98614152c auth3: Don't try other auth modules on any error
So far if any kind of error has happened, we just tried further auth
modules. An auth module should have the chance to definitely say "no,
this is a valid error, no further attempts anywhere else". The protocol
so far was for an auth module to return NT_STATUS_NOT_IMPLEMENTED if it
wanted to pass on to other modules, but any error led to the next auth
modules also being given a try.

This patch makes any auth module return code except NOT_IMPLEMENTED to
terminate the loop, such that every module has to explicitly request to
pass on to the next module via NOT_IMPLEMENTED.

All modules we reference in make_auth_context_subsystem() have code to
explicitly say "not for me please" with NOT_IMPLEMENTED.

This *might* break existing setups which fail in for example "guest" or
"winbind" due to other reasons. I prefer it this way though, because
adding another parameter like "This is a real authoritative failure,
don't go looking somewhere else" will only add to the mess.
But it's more a theoretical than a practical change with the
default auth backends.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=2976

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2017-03-24 11:57:08 +01:00
..
auth_builtin.c s3:auth_builtin: anonymous authentication doesn't allow a password 2016-04-28 16:51:17 +02:00
auth_domain.c auth_ntdomain3: Correctly handle !authoritative 2017-03-10 03:28:26 +01:00
auth_generic.c s3: auth: Use wbcAuthenticateUserEx to prime the caches. 2016-09-28 22:45:27 +02:00
auth_ntlmssp.c s3-auth: Fix a possible null pointer dereference 2015-07-17 14:04:01 +02:00
auth_sam.c auth: Provide a way to use the auth stack for winbindd authentication 2014-06-11 10:18:26 +02:00
auth_samba4.c s4: messaging: Remove bool auto_remove parameter from imessaging_init(). 2016-07-23 06:04:11 +02:00
auth_script.c More strlcat/strlcpy truncate checks. 2012-03-30 21:26:07 +02:00
auth_unix.c Correct "somthing" typos. 2017-02-22 08:26:23 +01:00
auth_util.c auth3: Simplify get_system_info3 2017-02-27 11:31:53 +01:00
auth_winbind.c auth_winbind3: Correctly handle !authoritative 2017-03-10 03:28:26 +01:00
auth.c auth3: Don't try other auth modules on any error 2017-03-24 11:57:08 +01:00
check_samsec.c auth: Use "all_zero" where appropriate 2017-01-03 16:04:28 +01:00
pampass.c dlist: remove unneeded type argument from DLIST_ADD_END() 2016-02-06 21:48:17 +01:00
pass_check.c auth: Remove support for HAVE_TRUNCATED_SALT from pass_check.c 2014-04-15 12:32:09 +02:00
proto.h Convert all uses of uint32/16/8 to _t in source3/auth. 2015-05-13 19:11:24 +02:00
server_info_sam.c s3-auth: Steal the memory to avoid duplication. 2014-03-13 15:08:26 +01:00
server_info.c lib: Add lib/util_unixsids.h 2016-12-28 20:17:12 +01:00
token_util.c lib: Add lib/util_unixsids.h 2016-12-28 20:17:12 +01:00
user_info.c s3-auth: Finally change make_user_info_*() use a parent talloc context 2014-04-02 11:05:46 +02:00
user_krb5.c Correct "perfom" typos. 2017-02-22 08:26:22 +01:00
user_util.c smbd: username map file handling xfile->stdio 2016-12-11 11:17:23 +01:00
wscript_build auth: Remove auth_wbc 2017-01-09 14:34:11 +01:00