Skip to content

Commit adbaa56

Browse files
committed
client: use signer
Previous PR that reworked the client+signing scheme forgot to actually use the signer. Signed-off-by: Hank Donnay <[email protected]>
1 parent 577a55d commit adbaa56

File tree

3 files changed

+39
-1
lines changed

3 files changed

+39
-1
lines changed

httptransport/client/httpclient.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,3 +129,10 @@ func WithSigner(v Signer) Option {
129129
type Signer interface {
130130
Sign(context.Context, *http.Request) error
131131
}
132+
133+
func (s *HTTP) sign(ctx context.Context, req *http.Request) error {
134+
if s.signer == nil {
135+
return nil
136+
}
137+
return s.signer.Sign(ctx, req)
138+
}

httptransport/client/indexer.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ func (s *HTTP) AffectedManifests(ctx context.Context, v []claircore.Vulnerabilit
3232
if err != nil {
3333
return nil, fmt.Errorf("failed to create request: %v", err)
3434
}
35+
if err := s.sign(ctx, req); err != nil {
36+
return nil, fmt.Errorf("failed to create request: %v", err)
37+
}
3538
req.Header.Set("content-type", `application/json`)
3639
resp, err := s.c.Do(req)
3740
if err != nil {
@@ -75,6 +78,9 @@ func (s *HTTP) Index(ctx context.Context, manifest *claircore.Manifest) (*clairc
7578
if err != nil {
7679
return nil, fmt.Errorf("failed to create request: %v", err)
7780
}
81+
if err := s.sign(ctx, req); err != nil {
82+
return nil, fmt.Errorf("failed to create request: %v", err)
83+
}
7884
req.Header.Set("content-type", `application/json`)
7985
resp, err := s.c.Do(req)
8086
if err != nil {
@@ -113,6 +119,9 @@ func (s *HTTP) IndexReport(ctx context.Context, manifest claircore.Digest) (*cla
113119
if err != nil {
114120
return nil, false, fmt.Errorf("failed to create request: %v", err)
115121
}
122+
if err := s.sign(ctx, req); err != nil {
123+
return nil, false, fmt.Errorf("failed to create request: %v", err)
124+
}
116125
resp, err := s.c.Do(req)
117126
if err != nil {
118127
return nil, false, fmt.Errorf("failed to do request: %v", err)
@@ -149,6 +158,9 @@ func (s *HTTP) State(ctx context.Context) (string, error) {
149158
if err != nil {
150159
return "", fmt.Errorf("failed to create request: %v", err)
151160
}
161+
if err := s.sign(ctx, req); err != nil {
162+
return "", fmt.Errorf("failed to create request: %v", err)
163+
}
152164
resp, err := s.c.Do(req)
153165
if err != nil {
154166
return "", fmt.Errorf("failed to do request: %v", err)
@@ -174,6 +186,9 @@ func (s *HTTP) DeleteManifests(ctx context.Context, d ...claircore.Digest) ([]cl
174186
if err != nil {
175187
return nil, fmt.Errorf("failed to create request: %v", err)
176188
}
189+
if err := s.sign(ctx, req); err != nil {
190+
return nil, fmt.Errorf("failed to create request: %v", err)
191+
}
177192
resp, err := s.c.Do(req)
178193
if err != nil {
179194
return nil, fmt.Errorf("failed to do request: %v", err)

httptransport/client/matcher.go

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,10 @@ func (c *HTTP) Scan(ctx context.Context, ir *claircore.IndexReport) (*claircore.
2929
}
3030
req, err := httputil.NewRequestWithContext(ctx, http.MethodPost, u.String(), codec.JSONReader(ir))
3131
if err != nil {
32-
return nil, err
32+
return nil, fmt.Errorf("failed to create request: %v", err)
33+
}
34+
if err := c.sign(ctx, req); err != nil {
35+
return nil, fmt.Errorf("failed to create request: %v", err)
3336
}
3437
req.Header.Set("content-type", `application/json`)
3538
resp, err := c.c.Do(req)
@@ -90,6 +93,10 @@ func (c *HTTP) DeleteUpdateOperations(ctx context.Context, ref ...uuid.UUID) (in
9093
errs[i] = err
9194
return
9295
}
96+
if err := c.sign(ctx, req); err != nil {
97+
errs[i] = fmt.Errorf("failed to create request: %v", err)
98+
return
99+
}
93100
res, err := c.c.Do(req)
94101
if err != nil {
95102
errs[i] = err
@@ -147,6 +154,9 @@ func (c *HTTP) UpdateOperations(ctx context.Context, k driver.UpdateKind, update
147154
if err != nil {
148155
return nil, err
149156
}
157+
if err := c.sign(ctx, req); err != nil {
158+
return nil, fmt.Errorf("failed to create request: %v", err)
159+
}
150160
return c.updateOperations(ctx, req, c.uoCache)
151161
}
152162

@@ -181,6 +191,9 @@ func (c *HTTP) LatestUpdateOperations(ctx context.Context, k driver.UpdateKind)
181191
// an ouCache is passed in by the caller to cache any responses providing an etag.
182192
// if a subsequent response provides a StatusNotModified status, the map of UpdateOprations is served from cache.
183193
func (c *HTTP) updateOperations(ctx context.Context, req *http.Request, cache *uoCache) (map[string][]driver.UpdateOperation, error) {
194+
if err := c.sign(ctx, req); err != nil {
195+
return nil, fmt.Errorf("failed to create request: %v", err)
196+
}
184197
res, err := c.c.Do(req)
185198
if err != nil {
186199
return nil, err
@@ -227,6 +240,9 @@ func (c *HTTP) UpdateDiff(ctx context.Context, prev, cur uuid.UUID) (*driver.Upd
227240
}
228241
v.Set("cur", cur.String())
229242
req.URL.RawQuery = v.Encode()
243+
if err := c.sign(ctx, req); err != nil {
244+
return nil, fmt.Errorf("failed to create request: %v", err)
245+
}
230246

231247
res, err := c.c.Do(req)
232248
if err != nil {

0 commit comments

Comments
 (0)