solution: refactor main config structure
This commit is contained in:
@@ -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")
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user