Fix rfc9421 requests having bad headers

This commit is contained in:
Melody Becker 2025-06-12 16:23:34 +02:00
parent f580a116f2
commit 9c3242f823
Signed by: mstar
SSH key fingerprint: SHA256:9VAo09aaVNTWKzPW7Hq2LW+ox9OdwmTSHRoD4mlz1yI

View file

@ -10,6 +10,7 @@ import (
"slices" "slices"
"time" "time"
"github.com/rs/zerolog/log"
"github.com/yaronf/httpsign" "github.com/yaronf/httpsign"
"git.mstar.dev/mstar/linstrom/config" "git.mstar.dev/mstar/linstrom/config"
@ -41,9 +42,10 @@ func RequestSigned(
actor *models.User, actor *models.User,
) (response *http.Response, wasRfc9421 bool, err error) { ) (response *http.Response, wasRfc9421 bool, err error) {
res, err := RequestSignedRFC9421(method, target, body, actor) res, err := RequestSignedRFC9421(method, target, body, actor)
if err == nil { if err == nil && res.StatusCode >= 200 && res.StatusCode < 400 {
return res, true, nil return res, true, nil
} }
log.Debug().Str("target", target).Msg("RFC9421 signed request failed, trying cavage signed")
res, err = RequestSignedCavage(method, target, body, actor) res, err = RequestSignedCavage(method, target, body, actor)
return res, false, err return res, false, err
} }
@ -59,6 +61,8 @@ func RequestSignedRFC9421(
return nil, err return nil, err
} }
applyDefaultHeaders(req) applyDefaultHeaders(req)
req.Header.Add("Accept", "application/activity+json")
req.Header.Add("Content-Type", "application/activity+json")
var signer *httpsign.Signer var signer *httpsign.Signer
signerFields := httpsign.Headers("@request-target", "content-digest") signerFields := httpsign.Headers("@request-target", "content-digest")
if config.GlobalConfig.Experimental.UseEd25519Keys { if config.GlobalConfig.Experimental.UseEd25519Keys {