This repository was archived by the owner on Mar 27, 2024. It is now read-only.
File tree Expand file tree Collapse file tree 3 files changed +37
-8
lines changed Expand file tree Collapse file tree 3 files changed +37
-8
lines changed Original file line number Diff line number Diff 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 )
Original file line number Diff line number Diff 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
291291func 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+ }
Original file line number Diff line number Diff line change @@ -20,12 +20,17 @@ import (
2020
2121var logger = log .New ("aries-framework/vdr/httpbinding" )
2222
23+ type authTokenProvider interface {
24+ AuthToken () (string , error )
25+ }
26+
2327// VDR via HTTP(s) endpoint.
2428type 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+
109121func closeResponseBody (respBody io.Closer ) {
110122 e := respBody .Close ()
111123 if e != nil {
You can’t perform that action at this time.
0 commit comments