diff --git a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/auth/Authenticator.kt b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/auth/Authenticator.kt index e23bd81..d7a8c52 100644 --- a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/auth/Authenticator.kt +++ b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/auth/Authenticator.kt @@ -17,6 +17,7 @@ import net.woggioni.rbcs.api.Configuration import net.woggioni.rbcs.api.Configuration.Group import net.woggioni.rbcs.api.Role import net.woggioni.rbcs.common.createLogger +import net.woggioni.rbcs.common.debug import net.woggioni.rbcs.server.RemoteBuildCacheServer abstract class AbstractNettyHttpAuthenticator(private val authorizer: Authorizer) : ChannelInboundHandlerAdapter() { @@ -56,15 +57,17 @@ abstract class AbstractNettyHttpAuthenticator(private val authorizer: Authorizer result.groups.asSequence().flatMap { it.roles.asSequence() } ).toSet() val authorized = authorizer.authorize(roles, msg) - if(log.isDebugEnabled) { - val authorizedMessage = if(authorized) { "Authorized" } else { "Forbidden" } - val clientAddress = ctx.channel().attr(RemoteBuildCacheServer.clientIp).get() - val roleString = "[" + roles.asSequence().map { "\"" + it + "\""}.joinToString(", ") + "]" - result.user?.name?.takeUnless(String::isEmpty)?.let { username -> - log.debug("$authorizedMessage ${msg.method()} request from user $username with address $clientAddress, granted roles $roleString") - } ?: { - log.debug("$authorizedMessage anonymous ${msg.method()} request with address $clientAddress, granted roles $roleString") + log.debug { + val authorizedMessage = if (authorized) { + "Authorized" + } else { + "Forbidden" } + val clientAddress = ctx.channel().attr(RemoteBuildCacheServer.clientIp).get() + val roleString = "[" + roles.asSequence().map { "\"" + it + "\"" }.joinToString(", ") + "]" + result.user?.name?.takeUnless(String::isEmpty)?.let { username -> + "$authorizedMessage ${msg.method()} request from user $username with address $clientAddress, granted roles $roleString" + } ?: "$authorizedMessage anonymous ${msg.method()} request with address $clientAddress, granted roles $roleString" } if (authorized) { super.channelRead(ctx, msg) diff --git a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/exception/ExceptionHandler.kt b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/exception/ExceptionHandler.kt index ff18071..58377b7 100644 --- a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/exception/ExceptionHandler.kt +++ b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/exception/ExceptionHandler.kt @@ -59,38 +59,28 @@ object ExceptionHandler : ChannelDuplexHandler() { override fun exceptionCaught(ctx: ChannelHandlerContext, cause: Throwable) { when (cause) { is DecoderException -> { - if(log.isDebugEnabled) { - log.debug(cause.message, cause) - } + log.debug(cause.message, cause) ctx.close() } is ConnectException -> { - if(log.isErrorEnabled) { - log.error(cause.message, cause) - } + log.error(cause.message, cause) ctx.writeAndFlush(SERVER_ERROR.retainedDuplicate()) } is SocketException -> { - if(log.isDebugEnabled) { - log.debug(cause.message, cause) - } + log.debug(cause.message, cause) ctx.close() } is SSLPeerUnverifiedException -> { - if(log.isDebugEnabled) { - log.debug(cause.message, cause) - } + log.debug(cause.message, cause) ctx.writeAndFlush(NOT_AUTHORIZED.retainedDuplicate()) .addListener(ChannelFutureListener.CLOSE_ON_FAILURE) } is SSLException -> { - if(log.isDebugEnabled) { - log.debug(cause.message, cause) - } + log.debug(cause.message, cause) ctx.close() } @@ -119,17 +109,13 @@ object ExceptionHandler : ChannelDuplexHandler() { } is CacheException -> { - if(log.isErrorEnabled) { - log.error(cause.message, cause) - } + log.error(cause.message, cause) ctx.writeAndFlush(NOT_AVAILABLE.retainedDuplicate()) .addListener(ChannelFutureListener.CLOSE_ON_FAILURE) } else -> { - if(log.isErrorEnabled) { - log.error(cause.message, cause) - } + log.error(cause.message, cause) ctx.writeAndFlush(SERVER_ERROR.retainedDuplicate()) .addListener(ChannelFutureListener.CLOSE_ON_FAILURE) }