Fix federation payload for activities without proper metadata #48

Merged
McPringle merged 6 commits from fix/remote-activity-unknown into main 2026-05-05 10:39:06 +02:00
2 changed files with 4 additions and 2 deletions
Showing only changes of commit d623e6370b - Show all commits

View file

@ -29,6 +29,7 @@ import java.net.URI;
import java.net.URISyntaxException; import java.net.URISyntaxException;
import java.security.MessageDigest; import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
import java.time.ZoneOffset;
import java.util.*; import java.util.*;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@ -436,7 +437,7 @@ public class ActivityPubController {
noteObject.put("id", activityUri); noteObject.put("id", activityUri);
noteObject.put("type", "Note"); noteObject.put("type", "Note");
noteObject.put("attributedTo", actorUri); noteObject.put("attributedTo", actorUri);
noteObject.put("published", activity.getCreatedAt().toString()); noteObject.put("published", activity.getCreatedAt().atOffset(ZoneOffset.UTC).toInstant().toString());
noteObject.put("content", formatActivityContent(activity)); noteObject.put("content", formatActivityContent(activity));
noteObject.put("url", activityUri); noteObject.put("url", activityUri);

View file

@ -12,6 +12,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.ZoneOffset;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -199,7 +200,7 @@ public class ActivityPostProcessingService {
noteObject.put("id", activityUri); noteObject.put("id", activityUri);
noteObject.put("type", "Note"); noteObject.put("type", "Note");
noteObject.put("attributedTo", actorUri); noteObject.put("attributedTo", actorUri);
noteObject.put("published", activity.getCreatedAt().toString()); noteObject.put("published", activity.getCreatedAt().atOffset(ZoneOffset.UTC).toInstant().toString());
noteObject.put("content", formatActivityContent(activity)); noteObject.put("content", formatActivityContent(activity));
noteObject.put("url", baseUrl + "/activities/" + activity.getId()); noteObject.put("url", baseUrl + "/activities/" + activity.getId());