MCPcopy Create free account
hub / github.com/bytebase/bytebase / openWithBasicAuth

Function openWithBasicAuth

backend/plugin/db/elasticsearch/elasticsearch.go:140–188  ·  view source on GitHub ↗
(_ context.Context, config db.ConnectionConfig, address string)

Source from the content-addressed store, hash-verified

138}
139
140func openWithBasicAuth(_ context.Context, config db.ConnectionConfig, address string) (db.Driver, error) {
141 // Get TLS config that respects verify_tls_certificate setting
142 tlsConfig, err := util.GetTLSConfig(config.DataSource)
143 if err != nil {
144 return nil, errors.Wrap(err, "failed to get TLS config")
145 }
146
147 // Default to insecure if no SSL is configured
148 if tlsConfig == nil {
149 tlsConfig = &tls.Config{
150 MinVersion: tls.VersionTLS12,
151 InsecureSkipVerify: true,
152 }
153 } else {
154 // Ensure minimum TLS version
155 tlsConfig.MinVersion = tls.VersionTLS12
156 }
157
158 esConfig := newElasticsearchConfig(config, address, tlsConfig)
159 // default http client.
160 httpClient := &http.Client{
161 Transport: &http.Transport{
162 TLSClientConfig: tlsConfig,
163 },
164 }
165
166 // typed elasticsearch client.
167 typedClient, err := elasticsearch.NewClient(esConfig)
168 if err != nil {
169 return nil, errors.Wrapf(err, "failed to create elasticsearch client")
170 }
171
172 // generate basic authentication string for http client.
173 encodedUsrAndPasswd := base64.StdEncoding.EncodeToString([]byte(fmt.Sprintf("%s:%s", config.DataSource.Username, config.Password)))
174 basicAuthString := fmt.Sprintf("Basic %s", string(encodedUsrAndPasswd))
175
176 return &Driver{
177 typedClient: typedClient,
178 basicAuthClient: &BasicAuthClient{
179 httpClient: httpClient,
180 addrScheduler: &AddressScheduler{
181 addresses: []string{address},
182 count: 0,
183 },
184 basicAuthString: basicAuthString,
185 },
186 config: config,
187 }, nil
188}
189
190func newElasticsearchConfig(config db.ConnectionConfig, address string, tlsConfig *tls.Config) elasticsearch.Config {
191 esConfig := elasticsearch.Config{

Callers 1

OpenMethod · 0.85

Calls 2

GetTLSConfigFunction · 0.92
newElasticsearchConfigFunction · 0.85

Tested by

no test coverage detected