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