🐛 Fix verify signature generating wrongly

This commit is contained in:
2025-12-30 19:27:16 +08:00
parent f42fc1da1c
commit 1d95d637dd

View File

@@ -23,13 +23,13 @@ public class ActivityPubSignatureService(
{ {
actorUri = null; actorUri = null;
if (!context.Request.Headers.ContainsKey("Signature")) if (!context.Request.Headers.TryGetValue("Signature", out var value))
{ {
logger.LogWarning("Request missing Signature header. Path: {Path}", context.Request.Path); logger.LogWarning("Request missing Signature header. Path: {Path}", context.Request.Path);
return false; return false;
} }
var signatureHeader = context.Request.Headers["Signature"].ToString(); var signatureHeader = value.ToString();
logger.LogInformation("Incoming request with signature. Path: {Path}, SignatureHeader: {Signature}", logger.LogInformation("Incoming request with signature. Path: {Path}, SignatureHeader: {Signature}",
context.Request.Path, signatureHeader); context.Request.Path, signatureHeader);
@@ -259,32 +259,36 @@ public class ActivityPubSignatureService(
foreach (var header in headers) foreach (var header in headers)
{ {
if (header == "content-type")
continue;
if (sb.Length > 0) if (sb.Length > 0)
sb.Append('\n'); sb.Append('\n');
sb.Append(header.ToLower()); sb.Append(header.ToLower());
sb.Append(": "); sb.Append(": ");
if (header == RequestTarget) switch (header)
{
case RequestTarget:
{ {
var method = context.Request.Method.ToLower(); var method = context.Request.Method.ToLower();
var path = context.Request.Path.Value ?? ""; var path = context.Request.Path.Value ?? "";
sb.Append($"{method} {path}"); sb.Append($"{method} {path}");
break;
} }
else if (header == "host") case "host":
{
sb.Append(Domain); sb.Append(Domain);
} break;
else if (header == "content-type") default:
{
continue;
}
else
{ {
if (context.Request.Headers.TryGetValue(header, out var values)) if (context.Request.Headers.TryGetValue(header, out var values))
{ {
sb.Append(values.ToString()); sb.Append(values.ToString());
} }
break;
}
} }
} }