Skip to content
This repository was archived by the owner on Mar 27, 2024. It is now read-only.

Commit 788f466

Browse files
author
Firas Qutishat
authored
chore: Add auth token provider (#3415)
Signed-off-by: Firas Qutishat <firas.qutishat@securekey.com> Signed-off-by: Firas Qutishat <firas.qutishat@securekey.com>
1 parent 919b90a commit 788f466

File tree

3 files changed

+37
-8
lines changed

3 files changed

+37
-8
lines changed

pkg/vdr/httpbinding/resolver.go

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,19 @@ func (v *VDR) resolveDID(uri string) ([]byte, error) {
3535

3636
req.Header.Add("Accept", didLDJson)
3737

38-
if v.resolveAuthToken != "" {
39-
req.Header.Add("Authorization", v.resolveAuthToken)
38+
authToken := v.resolveAuthToken
39+
40+
if v.authTokenProvider != nil {
41+
v, errToken := v.authTokenProvider.AuthToken()
42+
if errToken != nil {
43+
return nil, errToken
44+
}
45+
46+
authToken = "Bearer " + v
47+
}
48+
49+
if authToken != "" {
50+
req.Header.Add("Authorization", authToken)
4051
}
4152

4253
resp, err := v.client.Do(req)

pkg/vdr/httpbinding/resolver_test.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ func TestRead_DIDDoc(t *testing.T) {
103103

104104
defer func() { testServer.Close() }()
105105

106-
resolver, err := New(testServer.URL, WithResolveAuthToken("tk1"))
106+
resolver, err := New(testServer.URL, WithResolveAuthTokenProvider(&tokenProvider{}))
107107
require.NoError(t, err)
108108
gotDocument, err := resolver.Read("did:example:334455")
109109
require.NoError(t, err)
@@ -289,7 +289,7 @@ func TestRead_HTTPGetFailed(t *testing.T) {
289289
}
290290

291291
func TestDIDResolver_Accept(t *testing.T) {
292-
resolver, err := New("localhost:8080")
292+
resolver, err := New("localhost:8080", WithResolveAuthToken("tk1"))
293293
require.NoError(t, err)
294294
require.True(t, resolver.accept("example"))
295295

@@ -299,3 +299,9 @@ func TestDIDResolver_Accept(t *testing.T) {
299299
require.NoError(t, err)
300300
require.False(t, resolver.accept("example"))
301301
}
302+
303+
type tokenProvider struct{}
304+
305+
func (t *tokenProvider) AuthToken() (string, error) {
306+
return "newTK", nil
307+
}

pkg/vdr/httpbinding/vdr.go

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,17 @@ import (
2020

2121
var logger = log.New("aries-framework/vdr/httpbinding")
2222

23+
type authTokenProvider interface {
24+
AuthToken() (string, error)
25+
}
26+
2327
// VDR via HTTP(s) endpoint.
2428
type VDR struct {
25-
endpointURL string
26-
client *http.Client
27-
accept Accept
28-
resolveAuthToken string
29+
endpointURL string
30+
client *http.Client
31+
accept Accept
32+
resolveAuthToken string
33+
authTokenProvider authTokenProvider
2934
}
3035

3136
// Accept is method to accept did method.
@@ -106,6 +111,13 @@ func WithResolveAuthToken(authToken string) Option {
106111
}
107112
}
108113

114+
// WithResolveAuthTokenProvider add auth token provider.
115+
func WithResolveAuthTokenProvider(p authTokenProvider) Option {
116+
return func(opts *VDR) {
117+
opts.authTokenProvider = p
118+
}
119+
}
120+
109121
func closeResponseBody(respBody io.Closer) {
110122
e := respBody.Close()
111123
if e != nil {

0 commit comments

Comments
 (0)