main.misk.cloud.gcp.security.keys.GcpKeyManagementModule.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of misk-gcp Show documentation
Show all versions of misk-gcp Show documentation
Open source application container in Kotlin
package misk.cloud.gcp.security.keys
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport.newTrustedTransport
import com.google.api.client.json.jackson2.JacksonFactory
import com.google.api.services.cloudkms.v1.CloudKMS
import com.google.inject.Provides
import misk.config.AppName
import misk.inject.KAbstractModule
import misk.inject.asSingleton
import misk.security.keys.KeyService
import jakarta.inject.Singleton
class GcpKeyManagementModule(private val config: GcpKmsConfig) : KAbstractModule() {
override fun configure() {
bind().toInstance(config)
bind().to().asSingleton()
}
@Provides
@Singleton
fun providesKms(@AppName appName: String): CloudKMS =
CloudKMS.Builder(newTrustedTransport(), JacksonFactory(), null)
.setApplicationName(appName)
.build()
}