Skip to content

Commit

Permalink
fix token request
Browse files Browse the repository at this point in the history
  • Loading branch information
zyxkad committed Feb 21, 2024
1 parent 71fd967 commit e81ca34
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 2 deletions.
9 changes: 7 additions & 2 deletions token.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@ func (cr *Cluster) fetchToken(ctx context.Context) (token *ClusterToken, err err
return
}

logDebugf("Token Challenge: %s", res1.Challenge)

var buf [32]byte
hs := hmac.New(crypto.SHA256.New, ([]byte)(cr.clusterSecret))
hs.Write(([]byte)(res1.Challenge))
Expand All @@ -85,15 +87,18 @@ func (cr *Cluster) fetchToken(ctx context.Context) (token *ClusterToken, err err
Signature: signature,
})

logDebugf("Payload: %s", (string)(payload))

req, err = cr.makeReqWithBody(ctx, http.MethodPost, "/openbmclapi-agent/token", nil, bytes.NewReader(payload))
if err != nil {
return
}
req.Header.Set("Content-Type", "application/json")
res, err = cr.client.Do(req)
if err != nil {
return
}
if res.StatusCode != http.StatusOK {
if res.StatusCode / 100 != 2 {
err = NewHTTPStatusErrorFromResponse(res)
res.Body.Close()
return
Expand All @@ -110,6 +115,6 @@ func (cr *Cluster) fetchToken(ctx context.Context) (token *ClusterToken, err err

return &ClusterToken{
Token: res2.Token,
ExpireAt: time.Now().Add((time.Duration)(res2.TTL)*time.Millisecond - time.Minute),
ExpireAt: time.Now().Add((time.Duration)(res2.TTL)*time.Millisecond - 10*time.Minute),
}, nil
}
7 changes: 7 additions & 0 deletions util.go
Original file line number Diff line number Diff line change
Expand Up @@ -395,13 +395,17 @@ func (m *SyncMap[K, V]) GetOrSet(k K, setter func() V) (v V, has bool) {

type HTTPStatusError struct {
Code int
URL string
Message string
}

func NewHTTPStatusErrorFromResponse(res *http.Response) (e *HTTPStatusError) {
e = &HTTPStatusError{
Code: res.StatusCode,
}
if res.Request != nil {
e.URL = res.Request.URL.String()
}
var buf [512]byte
n, _ := res.Body.Read(buf[:])
e.Message = (string)(buf[:n])
Expand All @@ -410,6 +414,9 @@ func NewHTTPStatusErrorFromResponse(res *http.Response) (e *HTTPStatusError) {

func (e *HTTPStatusError) Error() string {
s := fmt.Sprintf("Unexpected http status %d %s", e.Code, http.StatusText(e.Code))
if e.URL != "" {
s += " for " + e.URL
}
if e.Message != "" {
s += ":\n\t" + e.Message
}
Expand Down

0 comments on commit e81ca34

Please sign in to comment.