@@ -212,42 +212,21 @@ func NewClient(opts ...*options.ClientOptions) (*Client, error) {
212
212
}
213
213
214
214
if clientOpt .Auth != nil {
215
- var oidcMachineCallback auth.OIDCCallback
216
- if clientOpt .Auth .OIDCMachineCallback != nil {
217
- oidcMachineCallback = func (ctx context.Context , args * driver.OIDCArgs ) (* driver.OIDCCredential , error ) {
218
- cred , err := clientOpt .Auth .OIDCMachineCallback (ctx , convertOIDCArgs (args ))
219
- return (* driver .OIDCCredential )(cred ), err
220
- }
221
- }
222
-
223
- var oidcHumanCallback auth.OIDCCallback
224
- if clientOpt .Auth .OIDCHumanCallback != nil {
225
- oidcHumanCallback = func (ctx context.Context , args * driver.OIDCArgs ) (* driver.OIDCCredential , error ) {
226
- cred , err := clientOpt .Auth .OIDCHumanCallback (ctx , convertOIDCArgs (args ))
227
- return (* driver .OIDCCredential )(cred ), err
228
- }
229
- }
230
-
231
- // Create an authenticator for the client
232
- client .authenticator , err = auth .CreateAuthenticator (clientOpt .Auth .AuthMechanism , & auth.Cred {
233
- Source : clientOpt .Auth .AuthSource ,
234
- Username : clientOpt .Auth .Username ,
235
- Password : clientOpt .Auth .Password ,
236
- PasswordSet : clientOpt .Auth .PasswordSet ,
237
- Props : clientOpt .Auth .AuthMechanismProperties ,
238
- OIDCMachineCallback : oidcMachineCallback ,
239
- OIDCHumanCallback : oidcHumanCallback ,
240
- }, clientOpt .HTTPClient )
215
+ client .authenticator , err = auth .CreateAuthenticator (
216
+ clientOpt .Auth .AuthMechanism ,
217
+ topology .ConvertCreds (clientOpt .Auth ),
218
+ clientOpt .HTTPClient ,
219
+ )
241
220
if err != nil {
242
- return nil , err
221
+ return nil , fmt . Errorf ( "error creating authenticator: %w" , err )
243
222
}
244
223
}
245
224
246
225
cfg , err := topology .NewConfigWithAuthenticator (clientOpt , client .clock , client .authenticator )
247
-
248
226
if err != nil {
249
227
return nil , err
250
228
}
229
+
251
230
client .serverAPI = topology .ServerAPIFromServerOptions (cfg .ServerOpts )
252
231
253
232
if client .deployment == nil {
@@ -266,19 +245,6 @@ func NewClient(opts ...*options.ClientOptions) (*Client, error) {
266
245
return client , nil
267
246
}
268
247
269
- // convertOIDCArgs converts the internal *driver.OIDCArgs into the equivalent
270
- // public type *options.OIDCArgs.
271
- func convertOIDCArgs (args * driver.OIDCArgs ) * options.OIDCArgs {
272
- if args == nil {
273
- return nil
274
- }
275
- return & options.OIDCArgs {
276
- Version : args .Version ,
277
- IDPInfo : (* options .IDPInfo )(args .IDPInfo ),
278
- RefreshToken : args .RefreshToken ,
279
- }
280
- }
281
-
282
248
// Connect initializes the Client by starting background monitoring goroutines.
283
249
// If the Client was created using the NewClient function, this method must be called before a Client can be used.
284
250
//
0 commit comments