Published 7 December 2022
- Intergate Swagger UI Hosting as Ktor Feature (KTOR-774)
- New plugins API for client (KTOR-5161)
- Rate-Limit Support on Server (KTOR-1196)
- Make sessions plugin multiplatform (KTOR-4960)
- Add the ability to access the route inside a route-scoped plugin (KTOR-5112)
- Add a method that returns a list of child routes recursively (KTOR-581)
- Support Default Value for missing Env Variables in YAML (KTOR-5283)
- Netty: ApplicationStarted event is fired before the server starts accepting connections (KTOR-4259)
- parseAuthorizationHeader throws ParseException on header value with multiple challenges (KTOR-5216)
- ByteChannel exception: Got EOF but at least 1 byte were expected (KTOR-5252)
- Application data in OAuth State parameter (KTOR-5225)
- NativePRNGNonBlocking is not found, fallback to SHA1PRNG (KTOR-668)
- Not calling call.respond() at server results in 404 for the client (KTOR-721)
- Restoring thread context elements when directly resuming to parent is broken (KTOR-2644)
- Out of the box ContentConverter for Protobuf (KTOR-763)
- Darwin: response is never returned when usePreconfiguredSession is used (KTOR-5134)
- List.merge() should have reversed priority (KTOR-5208)
- Allow nested authentications to be combined using AND (KTOR-5021)
- The swaggerUI plugin should be placed in the io.ktor.server.plugins.swagger package (KTOR-5192)
- CORS Plugin should log reason for returning 403 Forbidden errors (KTOR-4236)
- The default path to an OpenAPI specification doesn't work for the 'openAPI' plugin (KTOR-5193)
- JWT: JWTPayloadHolder.getListClaim() throws NPE when specified claim is absent (KTOR-5098)
- Logging: the plugin instantiates the default logger even when a custom one is provided (KTOR-5186)
- Java client engine doesn't handle HttpTimeout.INFINITE_TIMEOUT_MS properly (KTOR-2814)
- SessionTransportTransformerMessageAuthentication: Comparison of digests fails when there is a space in a value (KTOR-5168)
- Support serving OpenAPI from resources (KTOR-5150)
- Remove check for internal class in Select (KTOR-5035)
- Persistent Client HttpCache (KTOR-2579)
- Support native windows HTTP client (KTOR-735)
- Add Server BearerAuthenticationProvider (KTOR-5118)
- Merged config: "Property *.size not found" error when calling
configList
method on an array property (KTOR-5143) - "POSIX error 56: Socket is already connected" error when a socket is connection-mode on Darwin targets (KTOR-4877)
- StatusPages can't handle errors in HTML template (KTOR-5107)
- HttpRequestRetry: Memory leak of coroutines objects when using the plugin (KTOR-5099)
- CallLogging and CallId: exceptions thrown in WriteChannelContent.writeTo are swallowed (KTOR-4954)
- Temp files generated by multipart upload are not cleared in case of exception or cancellation (KTOR-5051)
- Websockets, Darwin: trusting a certificate via
handleChallenge
doesn't work for Websockets connections (KTOR-5094) - Digest auth: Support returning any objects which implement Principal interface (KTOR-5059)
- Add Debug Logging to Default Transformers (KTOR-4529)
- No way getting client's source address from IP packet (KTOR-2501)
- Add Env Variable to Change Log Level on Native Server (KTOR-4998)
- Add Debug Logging for Ktor Plugins and Routing (KTOR-4510)
- Add Debug Logging to ContentNegotiation (KTOR-4518)
- Add Debug Logging to Routing (KTOR-4524)
- Add Debug Logging to Auth Plugin (KTOR-4519)
- Add Debug Logging to Status Pages Plugin (KTOR-4527)
- Add Debug Logging to PartialContent Plugin (KTOR-4525)
- Add Debug Logging to Sessions Plugin (KTOR-4526)
- Add Debug Logging to Call Id (KTOR-4520)
- Add Debug Logging to WebSockets Plugin (KTOR-4528)
- Add Debug Logging to Double Receive Plugin (KTOR-4530)
- Add Debug Logging to Compression Plugin (KTOR-4521)
- Make certificate generation helpers more flexible (KTOR-5023)
- Jackson converter: Support requests with Content-Length header (KTOR-4904)
- Add a way to get a client's port (KTOR-430)
- Retry and timeout client plugins don't work together (KTOR-4652)
- Server Session - Switch to Kotlinx serialization (KTOR-2572)
- ApplicationCall.respondRedirect should have overload for Url (KTOR-1538)
- Make API to Use Configuration in Application Plugins (KTOR-4533)
- Way to block use of TLS 1.0/1.1 when using Ktor/Netty (KTOR-4587)
- testApplication: application initialization block isn't eagerly called (KTOR-4819)
- testApplication: test server lifecycle management (KTOR-4773)
- The beginning character of encodedPath field(Url class) is wrong when relative path (KTOR-621)
- Unable to access userPrincipal of servletRequest in ktor-server-servlet (KTOR-4784)
- When unable to get JWKS, JWTAuth swallows the underlying exception and only logs the last message (KTOR-636)
- CIO Server generates wrong URL for OAuth URL provider using Locations (KTOR-2143)
- Inconsistency among server engines when determining port/host of an incoming request (KTOR-4141)
- Update Versions of Dependencies (KTOR-5293)