Blame view

3rdparty/curl/share/man/man3/CURLOPT_HTTPAUTH.3 5.86 KB
a86c63ca   Hu Chunming   提交三方库文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
  .\" **************************************************************************
  .\" *                                  _   _ ____  _
  .\" *  Project                     ___| | | |  _ \| |
  .\" *                             / __| | | | |_) | |
  .\" *                            | (__| |_| |  _ <| |___
  .\" *                             \___|\___/|_| \_\_____|
  .\" *
  .\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
  .\" *
  .\" * This software is licensed as described in the file COPYING, which
  .\" * you should have received as part of this distribution. The terms
  .\" * are also available at https://curl.se/docs/copyright.html.
  .\" *
  .\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
  .\" * copies of the Software, and permit persons to whom the Software is
  .\" * furnished to do so, under the terms of the COPYING file.
  .\" *
  .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
  .\" * KIND, either express or implied.
  .\" *
  .\" **************************************************************************
  .\"
  .TH CURLOPT_HTTPAUTH 3 "July 03, 2020" "libcurl 7.77.0" "curl_easy_setopt options"
  
  .SH NAME
  CURLOPT_HTTPAUTH \- set HTTP server authentication methods to try
  .SH SYNOPSIS
  .nf
  #include <curl/curl.h>
  
  CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HTTPAUTH, long bitmask);
  .SH DESCRIPTION
  Pass a long as parameter, which is set to a bitmask, to tell libcurl which
  authentication method(s) you want it to use speaking to the remote server.
  
  The available bits are listed below. If more than one bit is set, libcurl will
  first query the site to see which authentication methods it supports and then
  pick the best one you allow it to use. For some methods, this will induce an
  extra network round-trip. Set the actual name and password with the
  \fICURLOPT_USERPWD(3)\fP option or with the \fICURLOPT_USERNAME(3)\fP and the
  \fICURLOPT_PASSWORD(3)\fP options.
  
  For authentication with a proxy, see \fICURLOPT_PROXYAUTH(3)\fP.
  
  .IP CURLAUTH_BASIC
  HTTP Basic authentication. This is the default choice, and the only method
  that is in wide-spread use and supported virtually everywhere. This sends
  the user name and password over the network in plain text, easily captured by
  others.
  .IP CURLAUTH_DIGEST
  HTTP Digest authentication.  Digest authentication is defined in RFC2617 and
  is a more secure way to do authentication over public networks than the
  regular old-fashioned Basic method.
  .IP CURLAUTH_DIGEST_IE
  HTTP Digest authentication with an IE flavor.  Digest authentication is
  defined in RFC2617 and is a more secure way to do authentication over public
  networks than the regular old-fashioned Basic method. The IE flavor is simply
  that libcurl will use a special "quirk" that IE is known to have used before
  version 7 and that some servers require the client to use.
  .IP CURLAUTH_BEARER
  HTTP Bearer token authentication, used primarily in OAuth 2.0 protocol.
  
  You can set the Bearer token to use with \fICURLOPT_XOAUTH2_BEARER(3)\fP.
  .IP CURLAUTH_NEGOTIATE
  HTTP Negotiate (SPNEGO) authentication. Negotiate authentication is defined
  in RFC 4559 and is the most secure way to perform authentication over HTTP.
  
  You need to build libcurl with a suitable GSS-API library or SSPI on Windows
  for this to work.
  .IP CURLAUTH_NTLM
  HTTP NTLM authentication. A proprietary protocol invented and used by
  Microsoft. It uses a challenge-response and hash concept similar to Digest, to
  prevent the password from being eavesdropped.
  
  You need to build libcurl with either OpenSSL, GnuTLS or NSS support for this
  option to work, or build libcurl on Windows with SSPI support.
  .IP CURLAUTH_NTLM_WB
  NTLM delegating to winbind helper. Authentication is performed by a separate
  binary application that is executed when needed. The name of the application
  is specified at compile time but is typically /usr/bin/ntlm_auth
  
  Note that libcurl will fork when necessary to run the winbind application and
  kill it when complete, calling waitpid() to await its exit when done. On POSIX
  operating systems, killing the process will cause a SIGCHLD signal to be
  raised (regardless of whether \fICURLOPT_NOSIGNAL(3)\fP is set), which must be
  handled intelligently by the application. In particular, the application must
  not unconditionally call wait() in its SIGCHLD signal handler to avoid being
  subject to a race condition.  This behavior is subject to change in future
  versions of libcurl.
  .IP CURLAUTH_ANY
  This is a convenience macro that sets all bits and thus makes libcurl pick any
  it finds suitable. libcurl will automatically select the one it finds most
  secure.
  .IP CURLAUTH_ANYSAFE
  This is a convenience macro that sets all bits except Basic and thus makes
  libcurl pick any it finds suitable. libcurl will automatically select the one
  it finds most secure.
  .IP CURLAUTH_ONLY
  This is a meta symbol. OR this value together with a single specific auth
  value to force libcurl to probe for un-restricted auth and if not, only that
  single auth algorithm is acceptable.
  .IP CURLAUTH_AWS_SIGV4
  provides AWS V4 signature authentication on HTTPS header
  see \fICURLOPT_AWS_SIGV4(3)\fP.
  .SH DEFAULT
  CURLAUTH_BASIC
  .SH PROTOCOLS
  HTTP
  .SH EXAMPLE
  .nf
  CURL *curl = curl_easy_init();
  if(curl) {
    CURLcode ret;
    curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/");
    /* allow whatever auth the server speaks */
    curl_easy_setopt(curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
    curl_easy_setopt(curl, CURLOPT_USERPWD, "james:bond");
    ret = curl_easy_perform(curl);
  }
  .fi
  .SH AVAILABILITY
  Option Added in 7.10.6.
  
  CURLAUTH_DIGEST_IE was added in 7.19.3
  
  CURLAUTH_ONLY was added in 7.21.3
  
  CURLAUTH_NTLM_WB was added in 7.22.0
  
  CURLAUTH_BEARER was added in 7.61.0
  
  CURLAUTH_AWS_SIGV4 was added in 7.74.0
  .SH RETURN VALUE
  Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
  CURLE_NOT_BUILT_IN if the bitmask specified no supported authentication
  methods.
  .SH "SEE ALSO"
  .BR CURLOPT_PROXYAUTH "(3), " CURLOPT_USERPWD "(3), "