solution: refactor main config structure

This commit is contained in:
Igor Artamonov
2019-06-20 16:39:49 -04:00
parent 72c983c68f
commit 057c3a5a02

View File

@@ -35,29 +35,39 @@ open class GrpcServer(
serverBuilder.addService(it) serverBuilder.addService(it)
} }
var secure = false val mustBeSecure = env.getProperty("tls.enabled", "") == "true"
if (env.getProperty("ssl", "false") == "true") { val tlsDisabled = env.getProperty("tls.enabled", "") == "false"
secure = true var hasServerCertificate = true
if (StringUtils.isEmpty(env.getProperty("ssl.cert"))) { if (!tlsDisabled) {
log.warn("ssl.cert property is not set (path to server TLS certificate)") if (StringUtils.isEmpty(env.getProperty("tls.server.certificate"))) {
secure = false if (mustBeSecure) {
log.warn("tls.server.certificate property is not set (path to server TLS certificate)")
System.exit(1)
}
hasServerCertificate = false
} }
if (StringUtils.isEmpty(env.getProperty("ssl.key"))) { if (StringUtils.isEmpty(env.getProperty("tls.server.key"))) {
log.warn("ssl.key property is not set (path to server TLS certificate key)") if (mustBeSecure) {
secure = false log.warn("tls.server.key property is not set (path to server TLS certificate key)")
System.exit(1)
}
hasServerCertificate = false
} }
} }
if (secure) { if (mustBeSecure || (!tlsDisabled && hasServerCertificate)) {
log.info("Using TLS") log.info("Using TLS")
val sslContextBuilder = GrpcSslContexts.forServer( val sslContextBuilder = GrpcSslContexts.forServer(
File(env.getProperty("ssl.cert")!!), File(env.getProperty("tls.server.certificate")!!),
File(env.getProperty("ssl.key")!!) File(env.getProperty("tls.server.key")!!)
) )
if (StringUtils.isNotEmpty(env.getProperty("ssl.client.cert"))) { if (StringUtils.isNotEmpty(env.getProperty("tls.client.ca"))) {
log.info("Using TLS for client authentication") log.info("Using TLS for client authentication")
sslContextBuilder.trustManager( sslContextBuilder.trustManager(
File(env.getProperty("ssl.client.cert")!!) File(env.getProperty("tls.client.ca")!!)
).clientAuth(ClientAuth.REQUIRE) )
if (env.getProperty("tls.client.require", "true") == "true") {
sslContextBuilder.clientAuth(ClientAuth.REQUIRE)
}
} else { } else {
log.warn("Trust all clients") log.warn("Trust all clients")
} }