ktor
ktor copied to clipboard
KTOR-27 Add netty HttpServerCodec config to ktor.deployment
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)
}
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
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.
Hey @ztkmkoo, the checkApi task is still failing on CI. Could you try to make clean and dump again?
Hey @ztkmkoo, the
checkApitask 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.
@e5l I rebased this PR for @ztkmkoo. Please take a look at it again
Fixed in #3095