mirror of https://github.com/usbharu/Hideout.git
				
				
				
			
						commit
						32483abfe0
					
				|  | @ -24,6 +24,7 @@ import dev.usbharu.hideout.core.domain.model.actor.ActorId | |||
| import dev.usbharu.hideout.core.domain.model.actor.ActorRepository | ||||
| import dev.usbharu.hideout.core.domain.model.media.MediaRepository | ||||
| import dev.usbharu.hideout.core.domain.model.support.acct.Acct | ||||
| import dev.usbharu.hideout.core.domain.model.support.domain.apHost | ||||
| import dev.usbharu.hideout.core.domain.model.support.principal.Principal | ||||
| import org.slf4j.LoggerFactory | ||||
| import org.springframework.stereotype.Component | ||||
|  | @ -45,7 +46,7 @@ class GetActorDetailApplicationService( | |||
|                 ?: throw IllegalArgumentException("Actor ${command.id} not found.") | ||||
|         } else if (command.actorName != null) { | ||||
|             val host = if (command.actorName.host.isEmpty()) { | ||||
|                 applicationConfig.url.host | ||||
|                 applicationConfig.url.apHost | ||||
|             } else { | ||||
|                 command.actorName.host | ||||
|             } | ||||
|  |  | |||
|  | @ -51,7 +51,7 @@ class RegisterLocalActorApplicationService( | |||
|         if (actorDomainService.usernameAlreadyUse(command.name)) { | ||||
|             throw IllegalArgumentException("Username already exists") | ||||
|         } | ||||
|         val instance = instanceRepository.findByUrl(applicationConfig.url.toURI()) | ||||
|         val instance = instanceRepository.findByUrl(applicationConfig.url) | ||||
|             ?: throw InternalServerException("Local instance not found.") | ||||
| 
 | ||||
|         val actor = actorFactoryImpl.createLocal( | ||||
|  |  | |||
|  | @ -46,7 +46,7 @@ class GetLocalInstanceApplicationService( | |||
|         } | ||||
| 
 | ||||
|         val instance = ( | ||||
|             instanceRepository.findByUrl(applicationConfig.url.toURI()) | ||||
|             instanceRepository.findByUrl(applicationConfig.url) | ||||
|                 ?: throw InternalServerException("Local instance not found.") | ||||
|             ) | ||||
| 
 | ||||
|  |  | |||
|  | @ -19,6 +19,7 @@ package dev.usbharu.hideout.core.application.instance | |||
| import dev.usbharu.hideout.core.application.shared.Transaction | ||||
| import dev.usbharu.hideout.core.config.ApplicationConfig | ||||
| import dev.usbharu.hideout.core.domain.model.instance.* | ||||
| import dev.usbharu.hideout.core.domain.model.support.domain.apHost | ||||
| import dev.usbharu.hideout.core.domain.shared.id.IdGenerateService | ||||
| import org.springframework.boot.context.event.ApplicationReadyEvent | ||||
| import org.springframework.boot.info.BuildProperties | ||||
|  | @ -36,15 +37,15 @@ class InitLocalInstanceApplicationService( | |||
| ) { | ||||
|     @EventListener(ApplicationReadyEvent::class) | ||||
|     suspend fun init() = transaction.transaction { | ||||
|         val findByUrl = instanceRepository.findByUrl(applicationConfig.url.toURI()) | ||||
|         val findByUrl = instanceRepository.findByUrl(applicationConfig.url) | ||||
| 
 | ||||
|         if (findByUrl == null) { | ||||
|             val instance = Instance( | ||||
|                 id = InstanceId(idGenerateService.generateId()), | ||||
|                 name = InstanceName(applicationConfig.url.host), | ||||
|                 name = InstanceName(applicationConfig.url.apHost), | ||||
|                 description = InstanceDescription(""), | ||||
|                 url = applicationConfig.url.toURI(), | ||||
|                 iconUrl = applicationConfig.url.toURI(), | ||||
|                 url = applicationConfig.url, | ||||
|                 iconUrl = applicationConfig.url, | ||||
|                 sharedInbox = null, | ||||
|                 software = InstanceSoftware("hideout"), | ||||
|                 version = InstanceVersion(buildProperties.version), | ||||
|  |  | |||
|  | @ -18,6 +18,7 @@ package dev.usbharu.hideout.core.application.model | |||
| 
 | ||||
| import dev.usbharu.hideout.core.domain.model.actor.Actor | ||||
| import dev.usbharu.hideout.core.domain.model.media.Media | ||||
| import dev.usbharu.hideout.core.domain.model.support.domain.apHost | ||||
| import java.net.URI | ||||
| 
 | ||||
| data class ActorDetail( | ||||
|  | @ -41,7 +42,7 @@ data class ActorDetail( | |||
|                 id = actor.id.id, | ||||
|                 name = actor.name.name, | ||||
|                 screenName = actor.screenName.screenName, | ||||
|                 host = actor.url.host, | ||||
|                 host = actor.url.apHost, | ||||
|                 instanceId = actor.instance.instanceId, | ||||
|                 remoteUrl = actor.url, | ||||
|                 locked = actor.locked, | ||||
|  |  | |||
|  | @ -17,11 +17,11 @@ | |||
| package dev.usbharu.hideout.core.config | ||||
| 
 | ||||
| import org.springframework.boot.context.properties.ConfigurationProperties | ||||
| import java.net.URL | ||||
| import java.net.URI | ||||
| 
 | ||||
| @ConfigurationProperties("hideout") | ||||
| data class ApplicationConfig( | ||||
|     val url: URL, | ||||
|     val url: URI, | ||||
|     val private: Boolean = true, | ||||
|     val keySize: Int = 2048, | ||||
| ) | ||||
|  |  | |||
|  | @ -16,6 +16,8 @@ | |||
| 
 | ||||
| package dev.usbharu.hideout.core.domain.model.support.domain | ||||
| 
 | ||||
| import java.net.URI | ||||
| 
 | ||||
| @JvmInline | ||||
| value class Domain(val domain: String) { | ||||
|     init { | ||||
|  | @ -23,6 +25,15 @@ value class Domain(val domain: String) { | |||
|     } | ||||
| 
 | ||||
|     companion object { | ||||
|         const val LENGTH = 1000 | ||||
|         const val LENGTH: Int = 1000 | ||||
| 
 | ||||
|         fun of(uri: URI): Domain = Domain(uri.apHost) | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| val URI.apHost: String | ||||
|     get() = if (port == -1) { | ||||
|         host | ||||
|     } else { | ||||
|         "$host:$port" | ||||
|     } | ||||
|  |  | |||
|  | @ -18,6 +18,7 @@ package dev.usbharu.hideout.core.domain.service.actor | |||
| 
 | ||||
| import dev.usbharu.hideout.core.config.ApplicationConfig | ||||
| import dev.usbharu.hideout.core.domain.model.actor.Actor | ||||
| import dev.usbharu.hideout.core.domain.model.support.domain.apHost | ||||
| import org.springframework.stereotype.Service | ||||
| 
 | ||||
| interface IRemoteActorCheckDomainService { | ||||
|  | @ -26,5 +27,5 @@ interface IRemoteActorCheckDomainService { | |||
| 
 | ||||
| @Service | ||||
| class RemoteActorCheckDomainService(private val applicationConfig: ApplicationConfig) : IRemoteActorCheckDomainService { | ||||
|     override fun isRemoteActor(actor: Actor): Boolean = actor.domain.domain != applicationConfig.url.host | ||||
|     override fun isRemoteActor(actor: Actor): Boolean = actor.domain.domain != applicationConfig.url.apHost | ||||
| } | ||||
|  |  | |||
|  | @ -20,6 +20,7 @@ import dev.usbharu.hideout.core.config.ApplicationConfig | |||
| import dev.usbharu.hideout.core.domain.model.actor.ActorPrivateKey | ||||
| import dev.usbharu.hideout.core.domain.model.actor.ActorPublicKey | ||||
| import dev.usbharu.hideout.core.domain.model.actor.ActorRepository | ||||
| import dev.usbharu.hideout.core.domain.model.support.domain.apHost | ||||
| import org.springframework.stereotype.Service | ||||
| import java.security.KeyPairGenerator | ||||
| 
 | ||||
|  | @ -29,7 +30,7 @@ class LocalActorDomainServiceImpl( | |||
|     private val applicationConfig: ApplicationConfig, | ||||
| ) : LocalActorDomainService { | ||||
|     override suspend fun usernameAlreadyUse(name: String): Boolean = | ||||
|         actorRepository.findByNameAndDomain(name, applicationConfig.url.host) != null | ||||
|         actorRepository.findByNameAndDomain(name, applicationConfig.url.apHost) != null | ||||
| 
 | ||||
|     override suspend fun generateKeyPair(): Pair<ActorPublicKey, ActorPrivateKey> { | ||||
|         val keyPairGenerator = KeyPairGenerator.getInstance("RSA") | ||||
|  |  | |||
|  | @ -20,6 +20,7 @@ import dev.usbharu.hideout.core.config.ApplicationConfig | |||
| import dev.usbharu.hideout.core.domain.model.actor.* | ||||
| import dev.usbharu.hideout.core.domain.model.instance.InstanceId | ||||
| import dev.usbharu.hideout.core.domain.model.support.domain.Domain | ||||
| import dev.usbharu.hideout.core.domain.model.support.domain.apHost | ||||
| import dev.usbharu.hideout.core.domain.shared.id.IdGenerateService | ||||
| import org.springframework.stereotype.Component | ||||
| import java.net.URI | ||||
|  | @ -40,7 +41,7 @@ class ActorFactoryImpl( | |||
|         return Actor( | ||||
|             id = ActorId(idGenerateService.generateId()), | ||||
|             name = actorName, | ||||
|             domain = Domain(applicationConfig.url.host), | ||||
|             domain = Domain(applicationConfig.url.apHost), | ||||
|             screenName = ActorScreenName(name), | ||||
|             description = ActorDescription(""), | ||||
|             inbox = URI.create("$userUrl/inbox"), | ||||
|  |  | |||
|  | @ -19,6 +19,7 @@ package dev.usbharu.hideout.core.infrastructure.springframework.oauth2 | |||
| import dev.usbharu.hideout.core.application.shared.Transaction | ||||
| import dev.usbharu.hideout.core.config.ApplicationConfig | ||||
| import dev.usbharu.hideout.core.domain.model.actor.ActorRepository | ||||
| import dev.usbharu.hideout.core.domain.model.support.domain.apHost | ||||
| import dev.usbharu.hideout.core.domain.model.userdetails.UserDetailRepository | ||||
| import kotlinx.coroutines.runBlocking | ||||
| import kotlinx.coroutines.slf4j.MDCContext | ||||
|  | @ -39,7 +40,7 @@ class UserDetailsServiceImpl( | |||
|             throw UsernameNotFoundException("Username not found") | ||||
|         } | ||||
|         transaction.transaction { | ||||
|             val actor = actorRepository.findByNameAndDomain(username, applicationConfig.url.host) | ||||
|             val actor = actorRepository.findByNameAndDomain(username, applicationConfig.url.apHost) | ||||
|                 ?: throw UsernameNotFoundException("$username not found") | ||||
|             val userDetail = userDetailRepository.findByActorId(actor.id.id) | ||||
|                 ?: throw UsernameNotFoundException("${actor.id.id} not found") | ||||
|  |  | |||
|  | @ -22,7 +22,7 @@ import org.mockito.kotlin.doReturn | |||
| import org.mockito.kotlin.eq | ||||
| import org.mockito.kotlin.whenever | ||||
| import utils.TestTransaction | ||||
| import java.net.URL | ||||
| import java.net.URI | ||||
| 
 | ||||
| @ExtendWith(MockitoExtension::class) | ||||
| class RegisterLocalActorApplicationServiceTest { | ||||
|  | @ -51,7 +51,7 @@ class RegisterLocalActorApplicationServiceTest { | |||
|     val transaction = TestTransaction | ||||
| 
 | ||||
|     @Spy | ||||
|     val applicationConfig = ApplicationConfig(URL("http://example.com")) | ||||
|     val applicationConfig = ApplicationConfig(URI.create("http://example.com")) | ||||
| 
 | ||||
|     @Spy | ||||
|     val idGenerateService = TwitterSnowflakeIdGenerateService | ||||
|  |  | |||
|  | @ -15,7 +15,7 @@ class RemoteActorCheckDomainServiceTest { | |||
| 
 | ||||
|         val remoteActor = RemoteActorCheckDomainService( | ||||
|             ApplicationConfig( | ||||
|                 URI.create("https://local.example.com").toURL() | ||||
|                 URI.create("https://local.example.com") | ||||
|             ) | ||||
|         ).isRemoteActor( | ||||
|             actor | ||||
|  | @ -30,7 +30,7 @@ class RemoteActorCheckDomainServiceTest { | |||
| 
 | ||||
|         val localActor = RemoteActorCheckDomainService( | ||||
|             ApplicationConfig( | ||||
|                 URI.create("https://local.example.com").toURL() | ||||
|                 URI.create("https://local.example.com") | ||||
|             ) | ||||
|         ).isRemoteActor( | ||||
|             actor | ||||
|  |  | |||
|  | @ -15,7 +15,7 @@ import org.mockito.junit.jupiter.MockitoExtension | |||
| import org.mockito.kotlin.doReturn | ||||
| import org.mockito.kotlin.eq | ||||
| import org.mockito.kotlin.whenever | ||||
| import java.net.URL | ||||
| import java.net.URI | ||||
| 
 | ||||
| @ExtendWith(MockitoExtension::class) | ||||
| class LocalActorDomainServiceImplTest { | ||||
|  | @ -26,7 +26,7 @@ class LocalActorDomainServiceImplTest { | |||
|     lateinit var actorRepository: ActorRepository | ||||
| 
 | ||||
|     @Spy | ||||
|     val applicationConfig = ApplicationConfig(URL("http://example.com")) | ||||
|     val applicationConfig = ApplicationConfig(URI.create("http://example.com")) | ||||
| 
 | ||||
|     @Test | ||||
|     fun findByNameAndDomainがnullならfalse() = runTest { | ||||
|  |  | |||
|  | @ -19,7 +19,7 @@ import org.mockito.junit.jupiter.MockitoExtension | |||
| import org.mockito.kotlin.* | ||||
| import org.springframework.security.core.userdetails.UsernameNotFoundException | ||||
| import utils.TestTransaction | ||||
| import java.net.URL | ||||
| import java.net.URI | ||||
| import kotlin.test.assertEquals | ||||
| 
 | ||||
| @ExtendWith(MockitoExtension::class) | ||||
|  | @ -34,7 +34,7 @@ class UserDetailsServiceImplTest { | |||
|     lateinit var userDetailRepository: UserDetailRepository | ||||
| 
 | ||||
|     @Spy | ||||
|     val applicationConfig = ApplicationConfig(URL("http://example.com")) | ||||
|     val applicationConfig = ApplicationConfig(URI.create("http://example.com")) | ||||
| 
 | ||||
|     @Spy | ||||
|     val transaction = TestTransaction | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue