From 801be7fe38eb03562e0a7211889793be24151bad Mon Sep 17 00:00:00 2001 From: usbharu <64310155+usbharu@users.noreply.github.com> Date: Tue, 19 Sep 2023 11:01:55 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20Spring=20Framework=E3=81=A7=E8=B5=B7?= =?UTF-8?q?=E5=8B=95=E3=81=A7=E3=81=8D=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle.kts | 3 +++ .../usbharu/hideout/config/SecurityConfig.kt | 6 +++++- .../hideout/config/SpringTransactionConfig.kt | 19 +++++++++++++++++++ .../RegisteredClientRepositoryImpl.kt | 2 ++ src/main/resources/application.yml | 6 ++++++ 5 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 src/main/kotlin/dev/usbharu/hideout/config/SpringTransactionConfig.kt diff --git a/build.gradle.kts b/build.gradle.kts index 4d19ebab..e3482bc4 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -144,6 +144,9 @@ dependencies { implementation("io.swagger.core.v3:swagger-models:2.2.6") implementation("org.jetbrains.exposed:exposed-java-time:$exposed_version") implementation("org.jetbrains.exposed:spring-transaction:$exposed_version") + implementation("org.springframework.data:spring-data-commons") + implementation("org.springframework.boot:spring-boot-starter-jdbc") + implementation("org.springframework.boot:spring-boot-starter-data-jdbc") implementation("io.ktor:ktor-client-logging-jvm:$ktor_version") implementation("io.ktor:ktor-server-host-common-jvm:$ktor_version") diff --git a/src/main/kotlin/dev/usbharu/hideout/config/SecurityConfig.kt b/src/main/kotlin/dev/usbharu/hideout/config/SecurityConfig.kt index a127762a..92fd756f 100644 --- a/src/main/kotlin/dev/usbharu/hideout/config/SecurityConfig.kt +++ b/src/main/kotlin/dev/usbharu/hideout/config/SecurityConfig.kt @@ -98,7 +98,11 @@ class SecurityConfig { @Bean fun authorizationServerSettings(): AuthorizationServerSettings { - return AuthorizationServerSettings.builder().build() + return AuthorizationServerSettings.builder() + .authorizationEndpoint("/oauth/authorize") + .tokenEndpoint("/oauth/token") + .tokenRevocationEndpoint("/oauth/revoke") + .build() } } diff --git a/src/main/kotlin/dev/usbharu/hideout/config/SpringTransactionConfig.kt b/src/main/kotlin/dev/usbharu/hideout/config/SpringTransactionConfig.kt new file mode 100644 index 00000000..a9d76420 --- /dev/null +++ b/src/main/kotlin/dev/usbharu/hideout/config/SpringTransactionConfig.kt @@ -0,0 +1,19 @@ +package dev.usbharu.hideout.config + +import org.jetbrains.exposed.spring.SpringTransactionManager +import org.springframework.context.annotation.Bean +import org.springframework.context.annotation.Configuration +import org.springframework.transaction.PlatformTransactionManager +import org.springframework.transaction.annotation.EnableTransactionManagement +import org.springframework.transaction.annotation.TransactionManagementConfigurer +import javax.sql.DataSource + + +@Configuration +@EnableTransactionManagement +class SpringTransactionConfig(val datasource: DataSource) : TransactionManagementConfigurer { + @Bean + override fun annotationDrivenTransactionManager(): PlatformTransactionManager { + return SpringTransactionManager(datasource) + } +} diff --git a/src/main/kotlin/dev/usbharu/hideout/repository/RegisteredClientRepositoryImpl.kt b/src/main/kotlin/dev/usbharu/hideout/repository/RegisteredClientRepositoryImpl.kt index cb43f90a..7a825c0c 100644 --- a/src/main/kotlin/dev/usbharu/hideout/repository/RegisteredClientRepositoryImpl.kt +++ b/src/main/kotlin/dev/usbharu/hideout/repository/RegisteredClientRepositoryImpl.kt @@ -16,6 +16,7 @@ import org.springframework.security.oauth2.server.authorization.settings.Configu import org.springframework.security.oauth2.server.authorization.settings.OAuth2TokenFormat import org.springframework.security.oauth2.server.authorization.settings.TokenSettings import org.springframework.stereotype.Repository +import org.springframework.transaction.annotation.Transactional import java.time.Instant import org.springframework.security.oauth2.server.authorization.client.RegisteredClient as SpringRegisteredClient @@ -75,6 +76,7 @@ class RegisteredClientRepositoryImpl(private val database: Database) : Registere }.singleOrNull()?.toRegisteredClient() } + @Transactional override fun findByClientId(clientId: String?): SpringRegisteredClient? { if (clientId == null) { return null diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 567c1259..5683266b 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -4,3 +4,9 @@ hideout: driver: "org.h2.Driver" user: "" password: "" +spring: + datasource: + driver-class-name: org.h2.Driver + url: "jdbc:h2:./test;MODE=POSTGRESQL" + username: "" + password: ""