Annotation of embedaddon/curl/docs/libcurl/opts/CURLOPT_HTTPAUTH.3, revision 1.1.1.1

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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>