From bac87790c6d044e3bfe9781dd285dfa4b33e49ee Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Mon, 1 Oct 2018 17:58:46 +0300 Subject: ActivityPub: HTTP Signatures and autoaccept followers --- .../java/com/juick/server/ActivityPubManager.java | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 juick-server/src/main/java/com/juick/server/ActivityPubManager.java (limited to 'juick-server/src/main/java/com/juick/server/ActivityPubManager.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 new file mode 100644 index 00000000..362754fd --- /dev/null +++ b/juick-server/src/main/java/com/juick/server/ActivityPubManager.java @@ -0,0 +1,37 @@ +package com.juick.server; + +import com.juick.server.api.activity.model.Person; +import com.juick.server.api.activity.model.activities.Accept; +import com.juick.service.activities.FollowEvent; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.ApplicationListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Nonnull; +import javax.inject.Inject; +import java.io.IOException; +import java.net.URI; + +@Component +public class ActivityPubManager implements ApplicationListener { + private static final Logger logger = LoggerFactory.getLogger(ActivityPubManager.class); + @Inject + SignatureManager signatureManager; + @Override + public void onApplicationEvent(@Nonnull FollowEvent followEvent) { + logger.info("received follower request"); + // automatically accept follower requests + Person me = (Person) signatureManager.getContext(URI.create((String)followEvent.getRequest().getObject())); + Person follower = (Person) signatureManager.getContext(URI.create(followEvent.getRequest().getActor())); + Accept accept = new Accept(); + accept.setActor(me.getId()); + accept.setObject(followEvent.getRequest()); + try { + signatureManager.post(me, follower, accept); + } catch (IOException e) { + logger.info("activitypub exception", e); + } + + } +} -- cgit v1.2.3