diff --git a/hideout/hideout-activitypub/src/main/kotlin/dev/usbharu/hideout/activitypub/config/WebFingerHostMetaLinkConfiguration.kt b/hideout/hideout-activitypub/src/main/kotlin/dev/usbharu/hideout/activitypub/config/WebFingerHostMetaLinkConfiguration.kt new file mode 100644 index 00000000..3f572a5b --- /dev/null +++ b/hideout/hideout-activitypub/src/main/kotlin/dev/usbharu/hideout/activitypub/config/WebFingerHostMetaLinkConfiguration.kt @@ -0,0 +1,18 @@ +package dev.usbharu.hideout.activitypub.config + +import dev.usbharu.hideout.activitypub.application.hostmeta.Link +import dev.usbharu.hideout.core.config.ApplicationConfig +import org.springframework.context.annotation.Bean +import org.springframework.context.annotation.Configuration + +@Configuration +class WebFingerHostMetaLinkConfiguration(private val applicationConfig: ApplicationConfig) { + @Bean + fun webFingerHostMetaLink(): Link { + return Link( + rel = "lrdd", + type = "application/jrd+json", + template = applicationConfig.url.resolve(".well-known/webfinger").toString() + "?resource={uri}" + ) + } +} \ No newline at end of file diff --git a/hideout/hideout-activitypub/src/main/kotlin/dev/usbharu/hideout/activitypub/interfaces/wellknown/HostmetaController.kt b/hideout/hideout-activitypub/src/main/kotlin/dev/usbharu/hideout/activitypub/interfaces/wellknown/HostmetaController.kt index 535355cc..4d78577b 100644 --- a/hideout/hideout-activitypub/src/main/kotlin/dev/usbharu/hideout/activitypub/interfaces/wellknown/HostmetaController.kt +++ b/hideout/hideout-activitypub/src/main/kotlin/dev/usbharu/hideout/activitypub/interfaces/wellknown/HostmetaController.kt @@ -11,22 +11,22 @@ import org.springframework.web.bind.annotation.RestController @RestController @RequestMapping("/.well-known") -class HostmetaController { +class HostmetaController(private val linkList: List = emptyList()) { @Order(1) @GetMapping("/host-meta") fun hostmeta(): ResponseEntity { return ResponseEntity.ok().contentType(MediaType("application", "xrd+xml")) - .body(WebHostMetadata(listOf(Link("a", "b", "c")))) + .body(WebHostMetadata(linkList)) } @Order(2) @GetMapping("/host-meta", produces = ["application/json"]) fun hostmetaJson(): WebHostMetadata { - return WebHostMetadata(listOf(Link("a", "b", "c"))) + return WebHostMetadata(linkList) } @GetMapping("/host-meta.json", produces = ["application/json"]) fun hostmetaJson2(): WebHostMetadata { - return WebHostMetadata(listOf(Link("a", "b", "c"))) + return WebHostMetadata(linkList) } } \ No newline at end of file