Skip to content

Commit 93d8f70

Browse files
authored
fix: Issue #1008 : Use exchange info's TLS Configuration for cert based auth (#1043)
Fix for #1008
1 parent b1931e4 commit 93d8f70

File tree

3 files changed

+9
-8
lines changed

3 files changed

+9
-8
lines changed

sdk/idp_cert_exchange.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,12 @@ func NewCertExchangeTokenSource(info oauth.CertExchangeInfo, credentials oauth.C
3838
return &exchangeSource, nil
3939
}
4040

41-
func (c *CertExchangeTokenSource) AccessToken(ctx context.Context, client *http.Client) (auth.AccessToken, error) {
41+
func (c *CertExchangeTokenSource) AccessToken(ctx context.Context, _ *http.Client) (auth.AccessToken, error) {
4242
c.tokenMutex.Lock()
4343
defer c.tokenMutex.Unlock()
4444

4545
if c.token == nil || c.token.Expired() {
46-
tok, err := oauth.DoCertExchange(ctx, client, c.IdpEndpoint, c.info, c.credentials, c.key)
46+
tok, err := oauth.DoCertExchange(ctx, c.IdpEndpoint, c.info, c.credentials, c.key)
4747
if err != nil {
4848
return "", err
4949
}

sdk/internal/oauth/oauth.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,11 +308,17 @@ func getTokenExchangeRequest(ctx context.Context, tokenEndpoint, dpopNonce strin
308308
return req, nil
309309
}
310310

311-
func DoCertExchange(ctx context.Context, client *http.Client, tokenEndpoint string, exchangeInfo CertExchangeInfo, clientCredentials ClientCredentials, key jwk.Key) (*Token, error) {
311+
func DoCertExchange(ctx context.Context, tokenEndpoint string, exchangeInfo CertExchangeInfo, clientCredentials ClientCredentials, key jwk.Key) (*Token, error) {
312312
req, err := getCertExchangeRequest(ctx, tokenEndpoint, clientCredentials, exchangeInfo, key)
313313
if err != nil {
314314
return nil, err
315315
}
316+
client := &http.Client{
317+
Transport: &http.Transport{
318+
TLSClientConfig: exchangeInfo.TLSConfig,
319+
},
320+
}
321+
316322
resp, err := client.Do(req)
317323
if err != nil {
318324
return nil, fmt.Errorf("error making request to IdP for certificate exchange: %w", err)

sdk/internal/oauth/oauth_test.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -88,11 +88,6 @@ func (s *OAuthSuite) TestCertExchangeFromKeycloak() {
8888

8989
tok, err := DoCertExchange(
9090
context.Background(),
91-
&http.Client{
92-
Transport: &http.Transport{
93-
TLSClientConfig: &tlsConfig,
94-
},
95-
},
9691
s.keycloakHTTPSEndpoint,
9792
exhcangeInfo,
9893
clientCredentials,

0 commit comments

Comments
 (0)