in http_client.go [55:94]
func NewHTTPClient(host string, baseClient *http.Client, config *Config) (*httpClient, error) {
if baseClient == nil {
baseClient = &http.Client{
Transport: &http.Transport{
Proxy: http.ProxyFromEnvironment,
DialContext: (&net.Dialer{
Timeout: 30 * time.Second,
KeepAlive: 30 * time.Second,
}).DialContext,
MaxIdleConns: 100,
IdleConnTimeout: 90 * time.Second,
TLSHandshakeTimeout: 10 * time.Second,
ExpectContinueTimeout: 1 * time.Second,
MaxIdleConnsPerHost: runtime.GOMAXPROCS(0) + 1,
},
}
switch config.authentication {
case digest:
baseClient = WithDigestAuth(baseClient, config.avaticaUser, config.avaticaPassword)
case basic:
baseClient = WithBasicAuth(baseClient, config.avaticaUser, config.avaticaPassword)
case spnego:
user := config.principal.username
realm := config.principal.realm
cli, err := WithKerberosAuth(baseClient, user, realm, config.keytab, config.krb5Conf, config.krb5CredentialCache)
if err != nil {
return nil, fmt.Errorf("can't add kerberos authentication to http client: %w", err)
}
baseClient = cli
}
}
c := &httpClient{
host: host,
httpClient: baseClient,
}
return c, nil
}