diff options
author | Stefan Metzmacher <metze@samba.org> | 2018-11-23 13:13:53 +0100 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2019-01-12 03:13:38 +0100 |
commit | 3a17389e1bef67361dd152793e85e00a6efb9cb5 (patch) | |
tree | 7d2a874a7ed3f716724ab7ce2d911717b490c685 /source4 | |
parent | 23d1393a5f27a3329005f3d560339f85ad780e41 (diff) | |
download | samba-3a17389e1bef67361dd152793e85e00a6efb9cb5.tar.gz |
s4:rpc_server/remote: add dcerpc_remote:allow_anonymous_fallback option
BUG: https://bugzilla.samba.org/show_bug.cgi?id=7113
BUG: https://bugzilla.samba.org/show_bug.cgi?id=11892
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Diffstat (limited to 'source4')
-rw-r--r-- | source4/rpc_server/remote/dcesrv_remote.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/source4/rpc_server/remote/dcesrv_remote.c b/source4/rpc_server/remote/dcesrv_remote.c index fed5bc6c9dc..4a441f34b23 100644 --- a/source4/rpc_server/remote/dcesrv_remote.c +++ b/source4/rpc_server/remote/dcesrv_remote.c @@ -50,6 +50,7 @@ static NTSTATUS remote_op_bind(struct dcesrv_call_state *dce_call, const struct struct cli_credentials *credentials; bool must_free_credentials = false; bool machine_account; + bool allow_anonymous; struct dcerpc_binding *b; struct composite_context *pipe_conn_req; uint32_t flags = 0; @@ -80,6 +81,11 @@ static NTSTATUS remote_op_bind(struct dcesrv_call_state *dce_call, const struct "dcerpc_remote", "use_machine_account", false); + allow_anonymous = lpcfg_parm_bool(dce_call->conn->dce_ctx->lp_ctx, + NULL, + "dcerpc_remote", + "allow_anonymous_fallback", + false); credentials = dcesrv_call_credentials(dce_call); @@ -113,6 +119,13 @@ static NTSTATUS remote_op_bind(struct dcesrv_call_state *dce_call, const struct } } else if (credentials != NULL) { DEBUG(5, ("dcerpc_remote: RPC Proxy: Using delegated credentials\n")); + } else if (allow_anonymous) { + DEBUG(5, ("dcerpc_remote: RPC Proxy: Using anonymous\n")); + credentials = cli_credentials_init_anon(priv); + if (!credentials) { + return NT_STATUS_NO_MEMORY; + } + must_free_credentials = true; } else { DEBUG(1,("dcerpc_remote: RPC Proxy: You must supply binding, user and password or have delegated credentials\n")); return NT_STATUS_INVALID_PARAMETER; |