This commit is contained in:
@@ -154,7 +154,7 @@ class GradleBuildCacheClient(private val profile: Configuration.Profile) : AutoC
|
|||||||
// HTTP handlers
|
// HTTP handlers
|
||||||
pipeline.addLast("codec", HttpClientCodec())
|
pipeline.addLast("codec", HttpClientCodec())
|
||||||
pipeline.addLast("decompressor", HttpContentDecompressor())
|
pipeline.addLast("decompressor", HttpContentDecompressor())
|
||||||
pipeline.addLast("aggregator", HttpObjectAggregator(1048576))
|
pipeline.addLast("aggregator", HttpObjectAggregator(134217728))
|
||||||
pipeline.addLast("chunked", ChunkedWriteHandler())
|
pipeline.addLast("chunked", ChunkedWriteHandler())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -203,9 +203,9 @@ class GradleBuildCacheClient(private val profile: Configuration.Profile) : AutoC
|
|||||||
ctx: ChannelHandlerContext,
|
ctx: ChannelHandlerContext,
|
||||||
response: FullHttpResponse
|
response: FullHttpResponse
|
||||||
) {
|
) {
|
||||||
responseFuture.complete(response)
|
|
||||||
pipeline.removeLast()
|
pipeline.removeLast()
|
||||||
pool.release(channel)
|
pool.release(channel)
|
||||||
|
responseFuture.complete(response)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun exceptionCaught(ctx: ChannelHandlerContext, cause: Throwable) {
|
override fun exceptionCaught(ctx: ChannelHandlerContext, cause: Throwable) {
|
||||||
@@ -217,7 +217,6 @@ class GradleBuildCacheClient(private val profile: Configuration.Profile) : AutoC
|
|||||||
ctx.close()
|
ctx.close()
|
||||||
pipeline.removeLast()
|
pipeline.removeLast()
|
||||||
pool.release(channel)
|
pool.release(channel)
|
||||||
super.exceptionCaught(ctx, cause)
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
// Prepare the HTTP request
|
// Prepare the HTTP request
|
||||||
|
@@ -24,6 +24,7 @@ import io.netty.handler.ssl.SslContext
|
|||||||
import io.netty.handler.ssl.SslContextBuilder
|
import io.netty.handler.ssl.SslContextBuilder
|
||||||
import io.netty.handler.ssl.SslHandler
|
import io.netty.handler.ssl.SslHandler
|
||||||
import io.netty.handler.stream.ChunkedWriteHandler
|
import io.netty.handler.stream.ChunkedWriteHandler
|
||||||
|
import io.netty.handler.timeout.IdleState
|
||||||
import io.netty.handler.timeout.IdleStateEvent
|
import io.netty.handler.timeout.IdleStateEvent
|
||||||
import io.netty.handler.timeout.IdleStateHandler
|
import io.netty.handler.timeout.IdleStateHandler
|
||||||
import io.netty.util.AttributeKey
|
import io.netty.util.AttributeKey
|
||||||
@@ -314,8 +315,17 @@ class GradleBuildCacheServer(private val cfg: Configuration) {
|
|||||||
pipeline.addLast(object : ChannelInboundHandlerAdapter() {
|
pipeline.addLast(object : ChannelInboundHandlerAdapter() {
|
||||||
override fun userEventTriggered(ctx: ChannelHandlerContext, evt: Any) {
|
override fun userEventTriggered(ctx: ChannelHandlerContext, evt: Any) {
|
||||||
if (evt is IdleStateEvent) {
|
if (evt is IdleStateEvent) {
|
||||||
log.debug {
|
when(evt.state()) {
|
||||||
"Idle timeout reached on channel ${ch.id().asShortText()}, closing the connection"
|
IdleState.READER_IDLE -> log.debug {
|
||||||
|
"Read timeout reached on channel ${ch.id().asShortText()}, closing the connection"
|
||||||
|
}
|
||||||
|
IdleState.WRITER_IDLE -> log.debug {
|
||||||
|
"Write timeout reached on channel ${ch.id().asShortText()}, closing the connection"
|
||||||
|
}
|
||||||
|
IdleState.ALL_IDLE -> log.debug {
|
||||||
|
"Idle timeout reached on channel ${ch.id().asShortText()}, closing the connection"
|
||||||
|
}
|
||||||
|
null -> throw IllegalStateException("This should never happen")
|
||||||
}
|
}
|
||||||
ctx.close()
|
ctx.close()
|
||||||
}
|
}
|
||||||
|
@@ -154,6 +154,9 @@ object Serializer {
|
|||||||
|
|
||||||
conf.tls?.let { tlsConfiguration ->
|
conf.tls?.let { tlsConfiguration ->
|
||||||
node("tls") {
|
node("tls") {
|
||||||
|
if(tlsConfiguration.isVerifyClients) {
|
||||||
|
attr("verify-clients", "true")
|
||||||
|
}
|
||||||
tlsConfiguration.keyStore?.let { keyStore ->
|
tlsConfiguration.keyStore?.let { keyStore ->
|
||||||
node("keystore") {
|
node("keystore") {
|
||||||
attr("file", keyStore.file.toString())
|
attr("file", keyStore.file.toString())
|
||||||
|
@@ -183,7 +183,7 @@
|
|||||||
<xs:element name="keystore" type="gbcs:keyStoreType" />
|
<xs:element name="keystore" type="gbcs:keyStoreType" />
|
||||||
<xs:element name="truststore" type="gbcs:trustStoreType" minOccurs="0"/>
|
<xs:element name="truststore" type="gbcs:trustStoreType" minOccurs="0"/>
|
||||||
</xs:all>
|
</xs:all>
|
||||||
<xs:attribute name="verify-clients" type="xs:boolean" use="optional"/>
|
<xs:attribute name="verify-clients" type="xs:boolean" use="optional" default="false"/>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
|
|
||||||
<xs:complexType name="keyStoreType">
|
<xs:complexType name="keyStoreType">
|
||||||
|
@@ -60,7 +60,7 @@
|
|||||||
<user-extractor pattern="user-pattern" attribute-name="CN"/>
|
<user-extractor pattern="user-pattern" attribute-name="CN"/>
|
||||||
</client-certificate>
|
</client-certificate>
|
||||||
</authentication>
|
</authentication>
|
||||||
<tls>
|
<tls verify-clients="true">
|
||||||
<keystore file="keystore.pfx" key-alias="key1" password="password" key-password="key-password"/>
|
<keystore file="keystore.pfx" key-alias="key1" password="password" key-password="key-password"/>
|
||||||
<truststore file="truststore.pfx" password="password" check-certificate-status="true" />
|
<truststore file="truststore.pfx" password="password" check-certificate-status="true" />
|
||||||
</tls>
|
</tls>
|
||||||
|
Reference in New Issue
Block a user