ktor icon indicating copy to clipboard operation
ktor copied to clipboard

KTOR-27 Add netty HttpServerCodec config to ktor.deployment

Open ztkmkoo opened this issue 4 years ago • 5 comments
trafficstars

Subsystem Server, ktor-server-netty

Motivation KTOR-27 AWS Cognito tends to send relatively large cookies to the server, or larger bearer tokens with JWT authentication. This means the standard 8KB limit for HTTP headers isn't enough.

Solution Make it can config from ktor.deployment for EngineMain or embeddedServer.

for EngineMain

ktor {
    deployment {
        maxHeaderLength= 8192
    }
}

for embeddedServer

fun main() {
    embeddedServer(Netty, port = 8000, configure = {
        maxHeaderLength= 8192
    }) {
        // ...
    }.start(wait = true)
}

ztkmkoo avatar May 29 '21 16:05 ztkmkoo

Hey @ztkmkoo, thanks for the PR. Could you rebase it on 2.0.0-eap and run ./gradlew apiDump?

@e5l Hi, i rebased on 2.0.0-eap. but cannot complete apiDump command. I try apiDump on main branch and complete it. Any advice?

Task :ktor-server:ktor-server-host-common:compileKotlinJvm FAILED

Caused by: java.lang.AssertionError: TypeAliasDescriptor expected: class EventDefinition (not found)
        at org.jetbrains.kotlin.ir.util.TypeTranslator.toIrTypeAbbreviation(TypeTranslator.kt:167)
        at org.jetbrains.kotlin.ir.util.TypeTranslator.translateType(TypeTranslator.kt:115)
        at org.jetbrains.kotlin.ir.util.TypeTranslator.translateType(TypeTranslator.kt:84)
        at org.jetbrains.kotlin.psi2ir.generators.StatementGenerator.toIrType(StatementGenerator.kt:64)
        at org.jetbrains.kotlin.psi2ir.generators.StatementGeneratorExtension.toIrType(StatementGenerator.kt:501)
        at org.jetbrains.kotlin.psi2ir.generators.CallGenerator.generatePropertyGetterCall(CallGenerator.kt:188)
        at org.jetbrains.kotlin.psi2ir.generators.CallGenerator.generateCall(CallGenerator.kt:51)
        at org.jetbrains.kotlin.psi2ir.generators.CallGenerator.generateCall$default(CallGenerator.kt:42)
        at org.jetbrains.kotlin.psi2ir.generators.CallGenerator.generateValueReference(CallGenerator.kt:102)
        at org.jetbrains.kotlin.psi2ir.generators.StatementGenerator.generateExpressionForReferencedDescriptor(StatementGenerator.kt:329)
        at org.jetbrains.kotlin.psi2ir.generators.StatementGenerator.visitSimpleNameExpression(StatementGenerator.kt:313)
        at org.jetbrains.kotlin.psi2ir.generators.StatementGenerator.visitSimpleNameExpression(StatementGenerator.kt:52)
        at org.jetbrains.kotlin.psi.KtNameReferenceExpression.accept(KtNameReferenceExpression.kt:59)
        at org.jetbrains.kotlin.psi2ir.generators.StatementGenerator.genStmt(StatementGenerator.kt:77)
        at org.jetbrains.kotlin.psi2ir.generators.StatementGenerator.genExpr(StatementGenerator.kt:87)
        at org.jetbrains.kotlin.psi2ir.generators.StatementGenerator.generateExpression(StatementGenerator.kt:73)
        at org.jetbrains.kotlin.psi2ir.generators.ArgumentsGenerationUtilsKt$pregenerateCall$1.invoke(ArgumentsGenerationUtils.kt:439)
        at org.jetbrains.kotlin.psi2ir.generators.ArgumentsGenerationUtilsKt$pregenerateCall$1.invoke(ArgumentsGenerationUtils.kt:439)
        at org.jetbrains.kotlin.psi2ir.generators.ArgumentsGenerationUtilsKt.generateValueArgumentUsing(ArgumentsGenerationUtils.kt:308)
        at org.jetbrains.kotlin.psi2ir.generators.ArgumentsGenerationUtilsKt.pregenerateValueArgumentsUsing(ArgumentsGenerationUtils.kt:660)
        at org.jetbrains.kotlin.psi2ir.generators.ArgumentsGenerationUtilsKt.pregenerateCallUsing(ArgumentsGenerationUtils.kt:449)
        at org.jetbrains.kotlin.psi2ir.generators.ArgumentsGenerationUtilsKt.pregenerateCall(ArgumentsGenerationUtils.kt:439)
        at org.jetbrains.kotlin.psi2ir.generators.StatementGenerator.visitCallExpression(StatementGenerator.kt:355)
        at org.jetbrains.kotlin.psi2ir.generators.StatementGenerator.visitCallExpression(StatementGenerator.kt:52)
        at org.jetbrains.kotlin.psi.KtCallExpression.accept(KtCallExpression.java:35)
        at org.jetbrains.kotlin.psi2ir.generators.StatementGenerator.visitDotQualifiedExpression(StatementGenerator.kt:373)
        at org.jetbrains.kotlin.psi2ir.generators.StatementGenerator.visitDotQualifiedExpression(StatementGenerator.kt:52)
        at org.jetbrains.kotlin.psi.KtDotQualifiedExpression.accept(KtDotQualifiedExpression.kt:32)
        at org.jetbrains.kotlin.psi2ir.generators.StatementGenerator.genStmt(StatementGenerator.kt:77)
        at org.jetbrains.kotlin.psi2ir.generators.StatementGenerator.generateStatement(StatementGenerator.kt:67)
        at org.jetbrains.kotlin.psi2ir.generators.BodyGenerator.generateLambdaBody(BodyGenerator.kt:98)
        at org.jetbrains.kotlin.psi2ir.generators.FunctionGenerator.generateLambdaFunctionDeclaration(FunctionGenerator.kt:59)
        at org.jetbrains.kotlin.psi2ir.generators.LocalFunctionGenerator.generateLambda(LocalFunctionGenerator.kt:32)
        at org.jetbrains.kotlin.psi2ir.generators.StatementGenerator.visitLambdaExpression(StatementGenerator.kt:470)
        at org.jetbrains.kotlin.psi2ir.generators.StatementGenerator.visitLambdaExpression(StatementGenerator.kt:52)
        at org.jetbrains.kotlin.psi.KtLambdaExpression.accept(KtLambdaExpression.java:40)
        at org.jetbrains.kotlin.psi2ir.generators.StatementGenerator.genStmt(StatementGenerator.kt:77)
        at org.jetbrains.kotlin.psi2ir.generators.StatementGenerator.genExpr(StatementGenerator.kt:87)
        at org.jetbrains.kotlin.psi2ir.generators.StatementGenerator.generateExpression(StatementGenerator.kt:73)
        at org.jetbrains.kotlin.psi2ir.generators.ArgumentsGenerationUtilsKt$pregenerateCall$1.invoke(ArgumentsGenerationUtils.kt:439)
        at org.jetbrains.kotlin.psi2ir.generators.ArgumentsGenerationUtilsKt$pregenerateCall$1.invoke(ArgumentsGenerationUtils.kt:439)
        at org.jetbrains.kotlin.psi2ir.generators.ArgumentsGenerationUtilsKt.generateValueArgumentUsing(ArgumentsGenerationUtils.kt:308)
        at org.jetbrains.kotlin.psi2ir.generators.ArgumentsGenerationUtilsKt.pregenerateValueArgumentsUsing(ArgumentsGenerationUtils.kt:660)
        at org.jetbrains.kotlin.psi2ir.generators.ArgumentsGenerationUtilsKt.pregenerateCallUsing(ArgumentsGenerationUtils.kt:449)
        at org.jetbrains.kotlin.psi2ir.generators.ArgumentsGenerationUtilsKt.pregenerateCall(ArgumentsGenerationUtils.kt:439)
        at org.jetbrains.kotlin.psi2ir.generators.StatementGenerator.visitCallExpression(StatementGenerator.kt:355)
        at org.jetbrains.kotlin.psi2ir.generators.StatementGenerator.visitCallExpression(StatementGenerator.kt:52)
        at org.jetbrains.kotlin.psi.KtCallExpression.accept(KtCallExpression.java:35)
        at org.jetbrains.kotlin.psi2ir.generators.StatementGenerator.genStmt(StatementGenerator.kt:77)
        at org.jetbrains.kotlin.psi2ir.generators.StatementGenerator.generateStatement(StatementGenerator.kt:67)
        at org.jetbrains.kotlin.psi2ir.generators.StatementGenerator.generateStatements(StatementGenerator.kt:70)
        at org.jetbrains.kotlin.psi2ir.generators.BodyGenerator.generateFunctionBody(BodyGenerator.kt:59)
        at org.jetbrains.kotlin.psi2ir.generators.FunctionGenerator.generateFunctionDeclaration(FunctionGenerator.kt:49)
        at org.jetbrains.kotlin.psi2ir.generators.DeclarationGenerator.generateMemberDeclaration(DeclarationGenerator.kt:49)
        ... 52 more

ztkmkoo avatar Jun 10 '21 13:06 ztkmkoo

Hey @ztkmkoo, thanks for the PR. Could you rebase it on 2.0.0-eap and run ./gradlew apiDump?

Hi @e5l , thank you for fixing the apiDump bug. I run the command and update my commit. Please check it.

ztkmkoo avatar Jun 27 '21 14:06 ztkmkoo

Hey @ztkmkoo, the checkApi task is still failing on CI. Could you try to make clean and dump again?

e5l avatar Jun 28 '21 07:06 e5l

Hey @ztkmkoo, the checkApi task is still failing on CI. Could you try to make clean and dump again?

Hi @e5l , I merge the new commits from ktorio:2.0.0-eap and re-dump it after cleaning. It seems I cannot trigger checkApi in teamCity. I'm not sure if failure is fixed.

ztkmkoo avatar Jun 28 '21 15:06 ztkmkoo

@e5l I rebased this PR for @ztkmkoo. Please take a look at it again

rsinukov avatar Oct 22 '21 20:10 rsinukov

Fixed in #3095

rsinukov avatar Aug 12 '22 14:08 rsinukov