Skip to content

Commit

Permalink
Explicitly pass http config to doppler consumer (#28277)
Browse files Browse the repository at this point in the history
Explicitly pass the TLS and proxy settings to doppler consumer, don't
rely on the type of the underlying transport.
Fixes issue initializing the client.

(cherry picked from commit 6a841cf)
  • Loading branch information
jsoriano authored and mergify-bot committed Oct 7, 2021
1 parent 200a789 commit 3dae71d
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 11 deletions.
14 changes: 14 additions & 0 deletions CHANGELOG.next.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,20 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d
- Disable the option of running --machine-learning on its own. {pull}20241[20241]
- Fix PANW field spelling "veredict" to "verdict" on event.action {pull}18808[18808]
- Add support for GMT timezone offsets in `decode_cef`. {pull}20993[20993]
- Fix parsing of Elasticsearch node name by `elasticsearch/slowlog` fileset. {pull}14547[14547]
- threatintel module: Changed the type of `threatintel.indicator.first_seen` from `keyword` to `date`. {pull}26765[26765]
- Remove all alias fields pointing to ECS fields from modules. This affects the Suricata and Traefik modules. {issue}10535[10535] {pull}26627[26627]
- Add option for S3 input to work without SQS notification {issue}18205[18205] {pull}27332[27332]
- Fix Crowdstrike ingest pipeline that was creating flattened `process` fields. {issue}27622[27622] {pull}27623[27623]
- Rename `log.path` to `log.file.path` in filestream to be consistent with `log` input and ECS. {pull}27761[27761]
- Removes old module aliases for `googlecloud` (moved to gcp) and `apache2` (moved to apache). {pull}27919[27919]
- Removes old module name aliases (gsuite) and removing old cyberark module in favor of the new cyberarkpas{pull}27915[27915]
- Only filesets that are explicitly configured will be enabled. {issue}17256[17256] {pull}27526[27526]
- All filesets are disabled in the default configuration. {issue}17256[17256] {pull}27762[27762]
- Remove deprecated fields in Kafka module. {pull}27938[27938]
- Remove deprecated fields in coredns module. {pull}28196[28196]
- Remove old `httpjson` config implementation. {pull}28054[28054]
- Fix initialization of http client in Cloudfoundry input. {issue}28271[28271] {pull}28277[28277]

*Heartbeat*

Expand Down
12 changes: 4 additions & 8 deletions x-pack/libbeat/common/cloudfoundry/dopplerconsumer.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@
package cloudfoundry

import (
"fmt"
"crypto/tls"
"net/http"
"net/url"
"regexp"
"sync"

Expand Down Expand Up @@ -37,13 +38,8 @@ type DopplerConsumer struct {
started bool
}

func newDopplerConsumer(address string, id string, log *logp.Logger, client *http.Client, tr *TokenRefresher, callbacks DopplerCallbacks) (*DopplerConsumer, error) {
transport, ok := client.Transport.(*http.Transport)
if !ok {
return nil, fmt.Errorf("expected http transport on client")
}

c := consumer.New(address, transport.TLSClientConfig, transport.Proxy)
func newDopplerConsumer(address string, id string, log *logp.Logger, tlsConfig *tls.Config, proxy func(*http.Request) (*url.URL, error), tr *TokenRefresher, callbacks DopplerCallbacks) (*DopplerConsumer, error) {
c := consumer.New(address, tlsConfig, proxy)
c.RefreshTokenFrom(tr)
c.SetDebugPrinter(newLogpDebugPrinter(log))

Expand Down
7 changes: 4 additions & 3 deletions x-pack/libbeat/common/cloudfoundry/hub.go
Original file line number Diff line number Diff line change
Expand Up @@ -129,13 +129,14 @@ func (h *Hub) DopplerConsumerFromClient(client *cfclient.Client, callbacks Doppl
if dopplerAddress == "" {
dopplerAddress = client.Endpoint.DopplerEndpoint
}
httpClient, _, err := h.httpClient()
tlsConfig, err := tlscommon.LoadTLSConfig(h.cfg.Transport.TLS)
if err != nil {
return nil, errors.Wrap(err, "getting http client")
return nil, errors.Wrap(err, "loading tls config")
}
proxy := h.cfg.Transport.Proxy.ProxyFunc()

tr := TokenRefresherFromCfClient(client)
return newDopplerConsumer(dopplerAddress, h.cfg.ShardID, h.log, httpClient, tr, callbacks)
return newDopplerConsumer(dopplerAddress, h.cfg.ShardID, h.log, tlsConfig.ToConfig(), proxy, tr, callbacks)
}

// doerFromClient returns an auth token doer using uaa.
Expand Down

0 comments on commit 3dae71d

Please sign in to comment.