From f85d0eb9e26b9ffae574b21a263b83c079342e6e Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Fri, 5 Oct 2018 13:45:14 +0300 Subject: ActivityPub: change message uri to human readable --- .../src/main/java/com/juick/server/ActivityPubManager.java | 7 +------ .../main/java/com/juick/server/api/activity/Profile.java | 14 +++++--------- 2 files changed, 6 insertions(+), 15 deletions(-) (limited to 'juick-server/src/main/java') diff --git a/juick-server/src/main/java/com/juick/server/ActivityPubManager.java b/juick-server/src/main/java/com/juick/server/ActivityPubManager.java index 46b7177f..2d6d06bc 100644 --- a/juick-server/src/main/java/com/juick/server/ActivityPubManager.java +++ b/juick-server/src/main/java/com/juick/server/ActivityPubManager.java @@ -4,7 +4,6 @@ import com.juick.Message; import com.juick.User; import com.juick.formatters.PlainTextFormatter; import com.juick.server.api.activity.model.Image; -import com.juick.server.api.activity.model.Link; import com.juick.server.api.activity.model.Note; import com.juick.server.api.activity.model.Person; import com.juick.server.api.activity.model.activities.Accept; @@ -22,7 +21,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; -import org.springframework.util.Base64Utils; import org.springframework.web.util.UriComponentsBuilder; import javax.annotation.Nonnull; @@ -172,10 +170,7 @@ public class ActivityPubManager implements ActivityListener, NotificationListene } public String messageUri(int mid, int rid) { UriComponentsBuilder uri = UriComponentsBuilder.fromUriString(baseUri); - String postId = rid > 0 ? - String.format("%d#%d", mid, rid) - : String.valueOf(mid); - uri.replacePath(String.format("/n/%s", Base64Utils.encodeToUrlSafeString(postId.getBytes()))); + uri.replacePath(String.format("/n/%d-%d", mid, rid)); return uri.toUriString(); } diff --git a/juick-server/src/main/java/com/juick/server/api/activity/Profile.java b/juick-server/src/main/java/com/juick/server/api/activity/Profile.java index 4186539d..f2beaa53 100644 --- a/juick-server/src/main/java/com/juick/server/api/activity/Profile.java +++ b/juick-server/src/main/java/com/juick/server/api/activity/Profile.java @@ -2,7 +2,6 @@ package com.juick.server.api.activity; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; -import com.juick.Message; import com.juick.User; import com.juick.server.ActivityPubManager; import com.juick.server.KeystoreManager; @@ -25,7 +24,6 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.context.ApplicationEventPublisher; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.util.Base64Utils; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.support.ServletUriComponentsBuilder; import org.springframework.web.util.UriComponents; @@ -223,17 +221,15 @@ public class Profile { throw new HttpNotFoundException(); } - @GetMapping(value = "/n/{base64id}", produces = {Context.LD_JSON_MEDIA_TYPE, Context.ACTIVITY_JSON_MEDIA_TYPE}) - public Context showNote(@PathVariable String base64id) { - String postId = new String(Base64Utils.decodeFromUrlSafeString(base64id)); - String[] ids = postId.split("#", 2); - if (ids.length > 1) { + @GetMapping(value = "/n/{mid}-{rid}", produces = {Context.LD_JSON_MEDIA_TYPE, Context.ACTIVITY_JSON_MEDIA_TYPE}) + public Context showNote(@PathVariable int mid, @PathVariable int rid) { + if (rid > 0) { // reply return Context.build(activityPubManager.makeNote( - messagesService.getReply(Integer.valueOf(ids[0]), Integer.valueOf(ids[1])))); + messagesService.getReply(mid, rid))); } return Context.build(activityPubManager.makeNote( - messagesService.getMessage(Integer.valueOf(ids[0])))); + messagesService.getMessage(mid))); } @PostMapping(value = "/api/inbox", consumes = {Context.LD_JSON_MEDIA_TYPE, Context.ACTIVITY_JSON_MEDIA_TYPE}) -- cgit v1.2.3