jean
02/24/2022, 3:13 PMfun main() {
embeddedServer(
factory = CIO,
environment = applicationEngineEnvironment {
config = HoconApplicationConfig(ConfigFactory.load())
connector {
port = 8080
}
module(Application::module)
},
).start(wait = true)
}
fun Application.module() {
val jwtValues = jwtValues(environment)
val pbkdf2Values = pbkdf2Values(environment)
val database = SamkjoringDatabase()
configureRouting(jwtValues, pbkdf2Values, database)
configureSerialization()
configureSecurity()
configureTemplate()
}
and my resources/application.conf
jwt {
secret = "7lgeBk06UhkLRLFDhQn3"
issuer = "<http://0.0.0.0:8080/>"
audience = "<http://0.0.0.0:8080/login>"
realm = "Access to 'login'"
}
pbkdf2 {
salt = "qdQk4P2TNvHc"
iterations = "10000"
keyLength = "512"
}
But I get the error
Exception in thread “main” io.ktor.config.ApplicationConfigurationException: Property jwt.secret not found.
at io.ktor.config.HoconApplicationConfig.property(HoconApplicationConfig.kt:15)
at no.samkjoring.plugins.auth.JwtKt.jwtValues(jwt.kt:27)What am I missing here?
Amaan
02/24/2022, 8:22 PMjwtValues
function? I imagine you should have a line like
environment.config.property("jwt.secret").getString()
assuming jwt
is a root property in the HOCON filejean
02/25/2022, 8:42 AMprivate const val JWT_SECRET = "jwt.secret"
private const val JWT_ISSUER = "jwt.issuer"
private const val JWT_AUDIENCE = "jwt.audience"
private const val JWT_REALM = "jwt.realm"
fun jwtValues(environment: ApplicationEnvironment) = JwtValues(
secret = environment.config.property(JWT_SECRET).getString(),
issuer = environment.config.property(JWT_ISSUER).getString(),
audience = environment.config.property(JWT_AUDIENCE).getString(),
realm = environment.config.property(JWT_REALM).getString()
)
jean
02/25/2022, 8:45 AMjean
02/25/2022, 9:38 AM