Skip to content

[cors] Use JDK's URI class#2180

Merged
tipsy merged 18 commits intojavalin:masterfrom
Playacem:gh-2138-cors-jdk-uri
Nov 30, 2025
Merged

[cors] Use JDK's URI class#2180
tipsy merged 18 commits intojavalin:masterfrom
Playacem:gh-2138-cors-jdk-uri

Conversation

@Playacem
Copy link
Copy Markdown
Member

@Playacem Playacem commented Mar 4, 2024

Todos:

  • tests for IPv4 addresses as an origin
  • tests for IPv6 addresses as an origin
  • harden port extraction especially for IPv6 addresses
  • Use URI class for port logic
  • complete plugin tests for IP address based origins

Fixes #2138 (once its done)

@codecov
Copy link
Copy Markdown

codecov bot commented Mar 4, 2024

Codecov Report

❌ Patch coverage is 91.30435% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 86.68%. Comparing base (1e95587) to head (a2ab0dd).
⚠️ Report is 2 commits behind head on master.

Files with missing lines Patch % Lines
...c/main/java/io/javalin/plugin/bundled/CorsUtils.kt 89.47% 0 Missing and 4 partials ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##             master    #2180      +/-   ##
============================================
+ Coverage     86.54%   86.68%   +0.13%     
+ Complexity     1446     1435      -11     
============================================
  Files           153      153              
  Lines          4200     4184      -16     
  Branches        477      468       -9     
============================================
- Hits           3635     3627       -8     
+ Misses          369      364       -5     
+ Partials        196      193       -3     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@tipsy tipsy force-pushed the master branch 4 times, most recently from 765b7d0 to 6faa186 Compare May 8, 2024 16:19
@Playacem Playacem force-pushed the gh-2138-cors-jdk-uri branch from 12e07b7 to 34371f6 Compare May 13, 2024 19:24
@Playacem Playacem force-pushed the gh-2138-cors-jdk-uri branch from 34371f6 to 6d6d995 Compare May 22, 2024 15:42
@tipsy
Copy link
Copy Markdown
Member

tipsy commented Jul 5, 2024

How is this PR going @Playacem ?

@Playacem
Copy link
Copy Markdown
Member Author

Playacem commented Jul 6, 2024

I have been quite busy with real life, but I finally have some time this weekend to work on it.

@tipsy
Copy link
Copy Markdown
Member

tipsy commented Jul 6, 2024

I have been quite busy with real life, but I finally have some time this weekend to work on it.

Me too, no rush ☺️

@Playacem Playacem force-pushed the gh-2138-cors-jdk-uri branch from 6d6d995 to 1df3f7d Compare July 6, 2024 10:23
@Playacem Playacem force-pushed the gh-2138-cors-jdk-uri branch from 8740c5c to 4cdeb24 Compare November 2, 2024 09:16
@Playacem Playacem marked this pull request as ready for review November 3, 2024 11:17
@tipsy
Copy link
Copy Markdown
Member

tipsy commented Mar 2, 2025

marked this pull request as ready for review 4 months ago

I guess it's ready for review? 😅

@Playacem
Copy link
Copy Markdown
Member Author

Playacem commented Mar 3, 2025

It is :)

@zugazagoitia zugazagoitia requested a review from Copilot June 13, 2025 17:19
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This pull request updates the CORS support to use JDK’s URI class for more robust origin parsing. Key changes include updating tests to use parameterized inputs for various origin scenarios (IPv4, IPv6, wildcards), refactoring CorsUtils to remove the PortResult abstraction in favor of boolean validations and exception handling, and revising CorsPlugin to integrate with the new utility methods.

Reviewed Changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

File Description
javalin/src/test/java/io/javalin/TestCorsUtils.kt Replaces individual tests with parameterized tests and updates origin parsing expectations
javalin/src/test/java/io/javalin/TestCors.kt Adds new tests for IPv4/IPv6 and wildcard handling and verifies error messages for invalid origins
javalin/src/main/java/io/javalin/plugin/bundled/CorsUtils.kt Removes PortResult, adds URI‑based origin validation and parsing, and handles wildcard origins
javalin/src/main/java/io/javalin/plugin/bundled/CorsPlugin.kt Updates usage of CorsUtils methods and refines error handling for origin validation

Comment on lines +21 to +26
val wildcardSnippet = "://*."
val hasWildcard = wildcardSnippet in origin
if (client && hasWildcard) {
return false
}
val possiblePortDigits = origin.subSequence(possiblePortIndex + 1, origin.length).toString()
if (possiblePortDigits.any { !it.isAsciiDigit() }) {
return PortResult.ErrorState.InvalidPort
val originWithoutWildcard = origin.replace(wildcardSnippet, "://")
Copy link

Copilot AI Jun 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] Consider handling possible variations of wildcard placement or formatting rather than relying solely on the literal substring "://*." to ensure robust matching.

Suggested change
val wildcardSnippet = "://*."
val hasWildcard = wildcardSnippet in origin
if (client && hasWildcard) {
return false
}
val possiblePortDigits = origin.subSequence(possiblePortIndex + 1, origin.length).toString()
if (possiblePortDigits.any { !it.isAsciiDigit() }) {
return PortResult.ErrorState.InvalidPort
val originWithoutWildcard = origin.replace(wildcardSnippet, "://")
val wildcardRegex = Regex("://\\*\\.")
val hasWildcard = wildcardRegex.containsMatchIn(origin)
if (client && hasWildcard) {
return false
}
val originWithoutWildcard = origin.replace(wildcardRegex, "://")

Copilot uses AI. Check for mistakes.
return PortResult.ErrorState.InvalidPort
val originWithoutWildcard = origin.replace(wildcardSnippet, "://")
val originToAnalyze = if (hasWildcard) originWithoutWildcard else origin
try {
Copy link

Copilot AI Jun 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] Consider catching more specific exceptions (e.g. URISyntaxException) here instead of a generic Exception to make error handling more explicit.

Copilot uses AI. Check for mistakes.
tipsy and others added 2 commits November 28, 2025 21:06
We need to specify junit-jupiter-params directly to force JUnit 6.
We previously had this on our classpath as a transitive dependency from
mockk, leading to a version mismatch and failing parameterized tests.
We could also switch over to the junit-jupiter artifact which combines
api, params and runtime.
@tipsy
Copy link
Copy Markdown
Member

tipsy commented Nov 30, 2025

Looks great @Playacem, thank you very much 🙌

@tipsy tipsy merged commit a81cafa into javalin:master Nov 30, 2025
19 of 20 checks passed
mergify bot added a commit to robfrank/linklift that referenced this pull request Mar 10, 2026
Bumps `javalin.version` from 6.7.0 to 7.0.1.
Updates `io.javalin:javalin-bundle` from 6.7.0 to 7.0.1
Release notes

*Sourced from [io.javalin:javalin-bundle's releases](https://github.com/javalin/javalin/releases).*

> 7.0.1
> -----
>
> What's Changed
> --------------
>
> * [readme] v7 release updates by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2527](https://redirect.github.com/javalin/javalin/pull/2527)
> * [micrometer] Fix interference with user-configured request logger by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2533](https://redirect.github.com/javalin/javalin/pull/2533)
> * [logging] Allow for multiple request loggers by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2539](https://redirect.github.com/javalin/javalin/pull/2539)
>
> **Full Changelog**: <javalin/javalin@javalin-parent-7.0.0...javalin-parent-7.0.1>
>
> 7.0.0
> -----
>
> What's Changed
> --------------
>
> * Fix infinite loop in custom exception handling by [`@​LordOfLeaks`](https://github.com/LordOfLeaks) in [javalin/javalin#2423](https://redirect.github.com/javalin/javalin/pull/2423)
> * [workflow]: Bump actions/checkout from 4 to 5 in the dependencies group by [`@​dependabot`](https://github.com/dependabot)[bot] in [javalin/javalin#2428](https://redirect.github.com/javalin/javalin/pull/2428)
> * Add comprehensive GitHub Copilot instructions with commit message convention by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2433](https://redirect.github.com/javalin/javalin/pull/2433)
> * Bump and rename sslcontext-kickstart to ayza by [`@​Hakky54`](https://github.com/Hakky54) in [javalin/javalin#2434](https://redirect.github.com/javalin/javalin/pull/2434)
> * Update Javalin to version 7.0.0-SNAPSHOT with Java 17 requirement by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2431](https://redirect.github.com/javalin/javalin/pull/2431)
> * Improve test suite by adding HTTP status code assertions and cleaning up static files tests by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2437](https://redirect.github.com/javalin/javalin/pull/2437)
> * [core] Migrate to Jetty 12 by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2444](https://redirect.github.com/javalin/javalin/pull/2444)
> * [workflow]: Bump the dependencies group with 3 updates by [`@​dependabot`](https://github.com/dependabot)[bot] in [javalin/javalin#2445](https://redirect.github.com/javalin/javalin/pull/2445)
> * Optimize static file handling by leveraging Jetty 12 native capabilities by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2447](https://redirect.github.com/javalin/javalin/pull/2447)
> * Upgrade Kotlin from 1.9.25 to 2.0.21 and remove JTE integration by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2452](https://redirect.github.com/javalin/javalin/pull/2452)
> * [deps] Update Pebble to 3.2.4 and fix package imports for CVE security fix by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2453](https://redirect.github.com/javalin/javalin/pull/2453)
> * Update all dependencies and plugins to latest stable versions by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2456](https://redirect.github.com/javalin/javalin/pull/2456)
> * [context] add support for quoted charset in content-type header ([#2448](https://redirect.github.com/javalin/javalin/issues/2448)) by [`@​Pinusar`](https://github.com/Pinusar) in [javalin/javalin#2449](https://redirect.github.com/javalin/javalin/pull/2449)
> * Add onUpgrade method to WebSocket RequestLogger by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2450](https://redirect.github.com/javalin/javalin/pull/2450)
> * Fix cookie handling in JavalinTest client by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2459](https://redirect.github.com/javalin/javalin/pull/2459)
> * Replace OkHTTP with native JDK HttpClient in javalin-testtools by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2461](https://redirect.github.com/javalin/javalin/pull/2461)
> * [ssl] Drop Conscrypt ALPN support from SSL Plugin by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2464](https://redirect.github.com/javalin/javalin/pull/2464)
> * [compression] Add preferred compressors list by [`@​fabiobento512`](https://github.com/fabiobento512) in [javalin/javalin#2427](https://redirect.github.com/javalin/javalin/pull/2427)
> * Add Zstandard compression support using zstd-jni by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2465](https://redirect.github.com/javalin/javalin/pull/2465)
> * Fix Missing Allow Header in HTTP 405 Responses by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2468](https://redirect.github.com/javalin/javalin/pull/2468)
> * [sse] Relax Accept header validation to support multiple content types by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2474](https://redirect.github.com/javalin/javalin/pull/2474)
> * [routing] Support custom HTTP methods by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2478](https://redirect.github.com/javalin/javalin/pull/2478)
> * [tests] Fix flakiness in TestRateLimitUtil by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2477](https://redirect.github.com/javalin/javalin/pull/2477)
> * [javalin] Move routing to config by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2479](https://redirect.github.com/javalin/javalin/pull/2479)
> * [maven] Refactor modules by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2481](https://redirect.github.com/javalin/javalin/pull/2481)
> * [github] Improve copilot-instructions.md with comprehensive Javalin patterns and philosophy by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2483](https://redirect.github.com/javalin/javalin/pull/2483)
> * [core] Introduce endpoint stack and utilize endpoints more by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2486](https://redirect.github.com/javalin/javalin/pull/2486)
> * [async] Improve async handling by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2489](https://redirect.github.com/javalin/javalin/pull/2489)
> * [deps] Upgrade OkHttp to 5.3.0 by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2496](https://redirect.github.com/javalin/javalin/pull/2496)
> * [core] Add config option to disable old version check warning by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2499](https://redirect.github.com/javalin/javalin/pull/2499)
> * Add static keyword to wsBefore and wsAfter in ApiBuilder by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2501](https://redirect.github.com/javalin/javalin/pull/2501)
> * [deps] Update Pebble to 4.0.0 by [`@​kamenitxan`](https://github.com/kamenitxan) in [javalin/javalin#2502](https://redirect.github.com/javalin/javalin/pull/2502)
> * [workflow]: Bump actions/checkout from 5 to 6 in the dependencies group by [`@​dependabot`](https://github.com/dependabot)[bot] in [javalin/javalin#2503](https://redirect.github.com/javalin/javalin/pull/2503)
> * [config] Rework JavalinConfig by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2504](https://redirect.github.com/javalin/javalin/pull/2504)
> * [tests] Add missing test cases by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2506](https://redirect.github.com/javalin/javalin/pull/2506)
> * [cors] Use JDK's URI class by [`@​Playacem`](https://github.com/Playacem) in [javalin/javalin#2180](https://redirect.github.com/javalin/javalin/pull/2180)
> * [micrometer] Restore Micrometer plugin for Javalin7/Jetty12 by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2511](https://redirect.github.com/javalin/javalin/pull/2511)
> * [json] Fix NoClassDefFoundError for ObjectMapper on Kotlin 2.x by [`@​fahrradflucht`](https://github.com/fahrradflucht) in [javalin/javalin#2510](https://redirect.github.com/javalin/javalin/pull/2510)
> * Extend Context#redirect to beforeMatched and rename skipIfExceptionOccurred by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2515](https://redirect.github.com/javalin/javalin/pull/2515)
> * [routing] Clean up unused interfaces and generics by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2517](https://redirect.github.com/javalin/javalin/pull/2517)

... (truncated)


Commits

* [`bbe55e5`](javalin/javalin@bbe55e5) [maven-release-plugin] prepare release javalin-parent-7.0.1
* [`f5a4934`](javalin/javalin@f5a4934) [logging] Allow for multiple request loggers ([#2539](https://redirect.github.com/javalin/javalin/issues/2539))
* [`e134377`](javalin/javalin@e134377) [micrometer] Fix interference with user-configured request logger ([#2533](https://redirect.github.com/javalin/javalin/issues/2533))
* [`5b5b2fb`](javalin/javalin@5b5b2fb) [websocket] Fix attributes set in wsBeforeUpgrade not persisting to onConnect
* [`d4b8c5b`](javalin/javalin@d4b8c5b) [ratelimitplugin] Fix regression in default key function
* [`698995d`](javalin/javalin@698995d) [endpoints] Add option to get the future matched enpoint
* [`9c3461f`](javalin/javalin@9c3461f) [docs] Update for v7
* [`6821dea`](javalin/javalin@6821dea) [maven-release-plugin] prepare for next development iteration
* [`3e02e28`](javalin/javalin@3e02e28) [maven-release-plugin] prepare release javalin-parent-7.0.0
* [`a02ecb7`](javalin/javalin@a02ecb7) [pom] Publish aggregator poms to fix release deploy
* Additional commits viewable in [compare view](javalin/javalin@javalin-parent-6.7.0...javalin-parent-7.0.1)
  
Updates `io.javalin.community.openapi:javalin-openapi-plugin` from 6.7.0 to 7.0.1
Release notes

*Sourced from [io.javalin.community.openapi:javalin-openapi-plugin's releases](https://github.com/javalin/javalin-openapi/releases).*

> 7.0.0
> -----
>
> **Changes**
>
> * See: <https://javalin.github.io/javalin-openapi/introduction/migration-from-6x.html>
>
> **Sponsors**
> Thanks to everyone who supported me this month 💜
>
> **Minimal requirements**
>
> * Java 17+ / Kotlin 2.3+
> * Javalin 7.0.0
>
> **Download**
>
> * [Wiki / Installation](https://github.com/javalin/javalin-openapi/wiki/1.-Installation)
>
> 7.0.0-beta.1
> ------------
>
> **Changes**
>
> * Support Javalin 7.0.0-beta.1
>
> **Sponsors**
> Thanks to everyone who supported me this month 💜

... (truncated)


Commits

* [`4a073c8`](javalin/javalin-openapi@4a073c8) [GH-274](https://redirect.github.com/javalin/javalin-openapi/issues/274) Release 7.0.1 (Resolves [#274](https://redirect.github.com/javalin/javalin-openapi/issues/274))
* [`11d10d5`](javalin/javalin-openapi@11d10d5) [GH-273](https://redirect.github.com/javalin/javalin-openapi/issues/273) Restructure dependencies (Fixes [#272](https://redirect.github.com/javalin/javalin-openapi/issues/272))
* [`41b3061`](javalin/javalin-openapi@41b3061) [GH-271](https://redirect.github.com/javalin/javalin-openapi/issues/271) Migration guide from 6.x
* [`1669065`](javalin/javalin-openapi@1669065) [GH-271](https://redirect.github.com/javalin/javalin-openapi/issues/271) Redesign core implementation for Javalin 7.x
* [`0c6ba93`](javalin/javalin-openapi@0c6ba93) [GH-268](https://redirect.github.com/javalin/javalin-openapi/issues/268) Replace wiki reference with a new docs in README ([#268](https://redirect.github.com/javalin/javalin-openapi/issues/268))
* [`5346ada`](javalin/javalin-openapi@5346ada) chore: adjust module resource path formatting in readme
* [`dd49a03`](javalin/javalin-openapi@dd49a03) fix: modify OpenAPI plugin resource path description
* [`13e6778`](javalin/javalin-openapi@13e6778) chore: update README for Javalin 7.x changes
* [`57ff8f7`](javalin/javalin-openapi@57ff8f7) [GH-264](https://redirect.github.com/javalin/javalin-openapi/issues/264) Drop GitHub Wiki
* [`b94bc1f`](javalin/javalin-openapi@b94bc1f) [GH-264](https://redirect.github.com/javalin/javalin-openapi/issues/264) Define custom base path for docs deployed to GitHub pages
* Additional commits viewable in [compare view](javalin/javalin-openapi@6.7.0...7.0.1)
  
Updates `io.javalin.community.openapi:javalin-swagger-plugin` from 6.7.0 to 7.0.1
Release notes

*Sourced from [io.javalin.community.openapi:javalin-swagger-plugin's releases](https://github.com/javalin/javalin-openapi/releases).*

> 7.0.0
> -----
>
> **Changes**
>
> * See: <https://javalin.github.io/javalin-openapi/introduction/migration-from-6x.html>
>
> **Sponsors**
> Thanks to everyone who supported me this month 💜
>
> **Minimal requirements**
>
> * Java 17+ / Kotlin 2.3+
> * Javalin 7.0.0
>
> **Download**
>
> * [Wiki / Installation](https://github.com/javalin/javalin-openapi/wiki/1.-Installation)
>
> 7.0.0-beta.1
> ------------
>
> **Changes**
>
> * Support Javalin 7.0.0-beta.1
>
> **Sponsors**
> Thanks to everyone who supported me this month 💜

... (truncated)


Commits

* [`4a073c8`](javalin/javalin-openapi@4a073c8) [GH-274](https://redirect.github.com/javalin/javalin-openapi/issues/274) Release 7.0.1 (Resolves [#274](https://redirect.github.com/javalin/javalin-openapi/issues/274))
* [`11d10d5`](javalin/javalin-openapi@11d10d5) [GH-273](https://redirect.github.com/javalin/javalin-openapi/issues/273) Restructure dependencies (Fixes [#272](https://redirect.github.com/javalin/javalin-openapi/issues/272))
* [`41b3061`](javalin/javalin-openapi@41b3061) [GH-271](https://redirect.github.com/javalin/javalin-openapi/issues/271) Migration guide from 6.x
* [`1669065`](javalin/javalin-openapi@1669065) [GH-271](https://redirect.github.com/javalin/javalin-openapi/issues/271) Redesign core implementation for Javalin 7.x
* [`0c6ba93`](javalin/javalin-openapi@0c6ba93) [GH-268](https://redirect.github.com/javalin/javalin-openapi/issues/268) Replace wiki reference with a new docs in README ([#268](https://redirect.github.com/javalin/javalin-openapi/issues/268))
* [`5346ada`](javalin/javalin-openapi@5346ada) chore: adjust module resource path formatting in readme
* [`dd49a03`](javalin/javalin-openapi@dd49a03) fix: modify OpenAPI plugin resource path description
* [`13e6778`](javalin/javalin-openapi@13e6778) chore: update README for Javalin 7.x changes
* [`57ff8f7`](javalin/javalin-openapi@57ff8f7) [GH-264](https://redirect.github.com/javalin/javalin-openapi/issues/264) Drop GitHub Wiki
* [`b94bc1f`](javalin/javalin-openapi@b94bc1f) [GH-264](https://redirect.github.com/javalin/javalin-openapi/issues/264) Define custom base path for docs deployed to GitHub pages
* Additional commits viewable in [compare view](javalin/javalin-openapi@6.7.0...7.0.1)
  
Updates `io.javalin:javalin-micrometer` from 6.7.0 to 7.0.1
Release notes

*Sourced from [io.javalin:javalin-micrometer's releases](https://github.com/javalin/javalin/releases).*

> 7.0.1
> -----
>
> What's Changed
> --------------
>
> * [readme] v7 release updates by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2527](https://redirect.github.com/javalin/javalin/pull/2527)
> * [micrometer] Fix interference with user-configured request logger by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2533](https://redirect.github.com/javalin/javalin/pull/2533)
> * [logging] Allow for multiple request loggers by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2539](https://redirect.github.com/javalin/javalin/pull/2539)
>
> **Full Changelog**: <javalin/javalin@javalin-parent-7.0.0...javalin-parent-7.0.1>
>
> 7.0.0
> -----
>
> What's Changed
> --------------
>
> * Fix infinite loop in custom exception handling by [`@​LordOfLeaks`](https://github.com/LordOfLeaks) in [javalin/javalin#2423](https://redirect.github.com/javalin/javalin/pull/2423)
> * [workflow]: Bump actions/checkout from 4 to 5 in the dependencies group by [`@​dependabot`](https://github.com/dependabot)[bot] in [javalin/javalin#2428](https://redirect.github.com/javalin/javalin/pull/2428)
> * Add comprehensive GitHub Copilot instructions with commit message convention by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2433](https://redirect.github.com/javalin/javalin/pull/2433)
> * Bump and rename sslcontext-kickstart to ayza by [`@​Hakky54`](https://github.com/Hakky54) in [javalin/javalin#2434](https://redirect.github.com/javalin/javalin/pull/2434)
> * Update Javalin to version 7.0.0-SNAPSHOT with Java 17 requirement by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2431](https://redirect.github.com/javalin/javalin/pull/2431)
> * Improve test suite by adding HTTP status code assertions and cleaning up static files tests by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2437](https://redirect.github.com/javalin/javalin/pull/2437)
> * [core] Migrate to Jetty 12 by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2444](https://redirect.github.com/javalin/javalin/pull/2444)
> * [workflow]: Bump the dependencies group with 3 updates by [`@​dependabot`](https://github.com/dependabot)[bot] in [javalin/javalin#2445](https://redirect.github.com/javalin/javalin/pull/2445)
> * Optimize static file handling by leveraging Jetty 12 native capabilities by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2447](https://redirect.github.com/javalin/javalin/pull/2447)
> * Upgrade Kotlin from 1.9.25 to 2.0.21 and remove JTE integration by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2452](https://redirect.github.com/javalin/javalin/pull/2452)
> * [deps] Update Pebble to 3.2.4 and fix package imports for CVE security fix by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2453](https://redirect.github.com/javalin/javalin/pull/2453)
> * Update all dependencies and plugins to latest stable versions by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2456](https://redirect.github.com/javalin/javalin/pull/2456)
> * [context] add support for quoted charset in content-type header ([#2448](https://redirect.github.com/javalin/javalin/issues/2448)) by [`@​Pinusar`](https://github.com/Pinusar) in [javalin/javalin#2449](https://redirect.github.com/javalin/javalin/pull/2449)
> * Add onUpgrade method to WebSocket RequestLogger by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2450](https://redirect.github.com/javalin/javalin/pull/2450)
> * Fix cookie handling in JavalinTest client by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2459](https://redirect.github.com/javalin/javalin/pull/2459)
> * Replace OkHTTP with native JDK HttpClient in javalin-testtools by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2461](https://redirect.github.com/javalin/javalin/pull/2461)
> * [ssl] Drop Conscrypt ALPN support from SSL Plugin by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2464](https://redirect.github.com/javalin/javalin/pull/2464)
> * [compression] Add preferred compressors list by [`@​fabiobento512`](https://github.com/fabiobento512) in [javalin/javalin#2427](https://redirect.github.com/javalin/javalin/pull/2427)
> * Add Zstandard compression support using zstd-jni by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2465](https://redirect.github.com/javalin/javalin/pull/2465)
> * Fix Missing Allow Header in HTTP 405 Responses by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2468](https://redirect.github.com/javalin/javalin/pull/2468)
> * [sse] Relax Accept header validation to support multiple content types by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2474](https://redirect.github.com/javalin/javalin/pull/2474)
> * [routing] Support custom HTTP methods by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2478](https://redirect.github.com/javalin/javalin/pull/2478)
> * [tests] Fix flakiness in TestRateLimitUtil by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2477](https://redirect.github.com/javalin/javalin/pull/2477)
> * [javalin] Move routing to config by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2479](https://redirect.github.com/javalin/javalin/pull/2479)
> * [maven] Refactor modules by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2481](https://redirect.github.com/javalin/javalin/pull/2481)
> * [github] Improve copilot-instructions.md with comprehensive Javalin patterns and philosophy by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2483](https://redirect.github.com/javalin/javalin/pull/2483)
> * [core] Introduce endpoint stack and utilize endpoints more by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2486](https://redirect.github.com/javalin/javalin/pull/2486)
> * [async] Improve async handling by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2489](https://redirect.github.com/javalin/javalin/pull/2489)
> * [deps] Upgrade OkHttp to 5.3.0 by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2496](https://redirect.github.com/javalin/javalin/pull/2496)
> * [core] Add config option to disable old version check warning by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2499](https://redirect.github.com/javalin/javalin/pull/2499)
> * Add static keyword to wsBefore and wsAfter in ApiBuilder by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2501](https://redirect.github.com/javalin/javalin/pull/2501)
> * [deps] Update Pebble to 4.0.0 by [`@​kamenitxan`](https://github.com/kamenitxan) in [javalin/javalin#2502](https://redirect.github.com/javalin/javalin/pull/2502)
> * [workflow]: Bump actions/checkout from 5 to 6 in the dependencies group by [`@​dependabot`](https://github.com/dependabot)[bot] in [javalin/javalin#2503](https://redirect.github.com/javalin/javalin/pull/2503)
> * [config] Rework JavalinConfig by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2504](https://redirect.github.com/javalin/javalin/pull/2504)
> * [tests] Add missing test cases by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2506](https://redirect.github.com/javalin/javalin/pull/2506)
> * [cors] Use JDK's URI class by [`@​Playacem`](https://github.com/Playacem) in [javalin/javalin#2180](https://redirect.github.com/javalin/javalin/pull/2180)
> * [micrometer] Restore Micrometer plugin for Javalin7/Jetty12 by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2511](https://redirect.github.com/javalin/javalin/pull/2511)
> * [json] Fix NoClassDefFoundError for ObjectMapper on Kotlin 2.x by [`@​fahrradflucht`](https://github.com/fahrradflucht) in [javalin/javalin#2510](https://redirect.github.com/javalin/javalin/pull/2510)
> * Extend Context#redirect to beforeMatched and rename skipIfExceptionOccurred by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2515](https://redirect.github.com/javalin/javalin/pull/2515)
> * [routing] Clean up unused interfaces and generics by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2517](https://redirect.github.com/javalin/javalin/pull/2517)

... (truncated)


Commits

* [`bbe55e5`](javalin/javalin@bbe55e5) [maven-release-plugin] prepare release javalin-parent-7.0.1
* [`f5a4934`](javalin/javalin@f5a4934) [logging] Allow for multiple request loggers ([#2539](https://redirect.github.com/javalin/javalin/issues/2539))
* [`e134377`](javalin/javalin@e134377) [micrometer] Fix interference with user-configured request logger ([#2533](https://redirect.github.com/javalin/javalin/issues/2533))
* [`5b5b2fb`](javalin/javalin@5b5b2fb) [websocket] Fix attributes set in wsBeforeUpgrade not persisting to onConnect
* [`d4b8c5b`](javalin/javalin@d4b8c5b) [ratelimitplugin] Fix regression in default key function
* [`698995d`](javalin/javalin@698995d) [endpoints] Add option to get the future matched enpoint
* [`9c3461f`](javalin/javalin@9c3461f) [docs] Update for v7
* [`6821dea`](javalin/javalin@6821dea) [maven-release-plugin] prepare for next development iteration
* [`3e02e28`](javalin/javalin@3e02e28) [maven-release-plugin] prepare release javalin-parent-7.0.0
* [`a02ecb7`](javalin/javalin@a02ecb7) [pom] Publish aggregator poms to fix release deploy
* Additional commits viewable in [compare view](javalin/javalin@javalin-parent-6.7.0...javalin-parent-7.0.1)
  
Updates `io.javalin:javalin-testtools` from 6.7.0 to 7.0.1
Release notes

*Sourced from [io.javalin:javalin-testtools's releases](https://github.com/javalin/javalin/releases).*

> 7.0.1
> -----
>
> What's Changed
> --------------
>
> * [readme] v7 release updates by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2527](https://redirect.github.com/javalin/javalin/pull/2527)
> * [micrometer] Fix interference with user-configured request logger by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2533](https://redirect.github.com/javalin/javalin/pull/2533)
> * [logging] Allow for multiple request loggers by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2539](https://redirect.github.com/javalin/javalin/pull/2539)
>
> **Full Changelog**: <javalin/javalin@javalin-parent-7.0.0...javalin-parent-7.0.1>
>
> 7.0.0
> -----
>
> What's Changed
> --------------
>
> * Fix infinite loop in custom exception handling by [`@​LordOfLeaks`](https://github.com/LordOfLeaks) in [javalin/javalin#2423](https://redirect.github.com/javalin/javalin/pull/2423)
> * [workflow]: Bump actions/checkout from 4 to 5 in the dependencies group by [`@​dependabot`](https://github.com/dependabot)[bot] in [javalin/javalin#2428](https://redirect.github.com/javalin/javalin/pull/2428)
> * Add comprehensive GitHub Copilot instructions with commit message convention by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2433](https://redirect.github.com/javalin/javalin/pull/2433)
> * Bump and rename sslcontext-kickstart to ayza by [`@​Hakky54`](https://github.com/Hakky54) in [javalin/javalin#2434](https://redirect.github.com/javalin/javalin/pull/2434)
> * Update Javalin to version 7.0.0-SNAPSHOT with Java 17 requirement by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2431](https://redirect.github.com/javalin/javalin/pull/2431)
> * Improve test suite by adding HTTP status code assertions and cleaning up static files tests by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2437](https://redirect.github.com/javalin/javalin/pull/2437)
> * [core] Migrate to Jetty 12 by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2444](https://redirect.github.com/javalin/javalin/pull/2444)
> * [workflow]: Bump the dependencies group with 3 updates by [`@​dependabot`](https://github.com/dependabot)[bot] in [javalin/javalin#2445](https://redirect.github.com/javalin/javalin/pull/2445)
> * Optimize static file handling by leveraging Jetty 12 native capabilities by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2447](https://redirect.github.com/javalin/javalin/pull/2447)
> * Upgrade Kotlin from 1.9.25 to 2.0.21 and remove JTE integration by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2452](https://redirect.github.com/javalin/javalin/pull/2452)
> * [deps] Update Pebble to 3.2.4 and fix package imports for CVE security fix by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2453](https://redirect.github.com/javalin/javalin/pull/2453)
> * Update all dependencies and plugins to latest stable versions by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2456](https://redirect.github.com/javalin/javalin/pull/2456)
> * [context] add support for quoted charset in content-type header ([#2448](https://redirect.github.com/javalin/javalin/issues/2448)) by [`@​Pinusar`](https://github.com/Pinusar) in [javalin/javalin#2449](https://redirect.github.com/javalin/javalin/pull/2449)
> * Add onUpgrade method to WebSocket RequestLogger by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2450](https://redirect.github.com/javalin/javalin/pull/2450)
> * Fix cookie handling in JavalinTest client by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2459](https://redirect.github.com/javalin/javalin/pull/2459)
> * Replace OkHTTP with native JDK HttpClient in javalin-testtools by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2461](https://redirect.github.com/javalin/javalin/pull/2461)
> * [ssl] Drop Conscrypt ALPN support from SSL Plugin by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2464](https://redirect.github.com/javalin/javalin/pull/2464)
> * [compression] Add preferred compressors list by [`@​fabiobento512`](https://github.com/fabiobento512) in [javalin/javalin#2427](https://redirect.github.com/javalin/javalin/pull/2427)
> * Add Zstandard compression support using zstd-jni by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2465](https://redirect.github.com/javalin/javalin/pull/2465)
> * Fix Missing Allow Header in HTTP 405 Responses by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2468](https://redirect.github.com/javalin/javalin/pull/2468)
> * [sse] Relax Accept header validation to support multiple content types by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2474](https://redirect.github.com/javalin/javalin/pull/2474)
> * [routing] Support custom HTTP methods by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2478](https://redirect.github.com/javalin/javalin/pull/2478)
> * [tests] Fix flakiness in TestRateLimitUtil by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2477](https://redirect.github.com/javalin/javalin/pull/2477)
> * [javalin] Move routing to config by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2479](https://redirect.github.com/javalin/javalin/pull/2479)
> * [maven] Refactor modules by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2481](https://redirect.github.com/javalin/javalin/pull/2481)
> * [github] Improve copilot-instructions.md with comprehensive Javalin patterns and philosophy by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2483](https://redirect.github.com/javalin/javalin/pull/2483)
> * [core] Introduce endpoint stack and utilize endpoints more by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2486](https://redirect.github.com/javalin/javalin/pull/2486)
> * [async] Improve async handling by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2489](https://redirect.github.com/javalin/javalin/pull/2489)
> * [deps] Upgrade OkHttp to 5.3.0 by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2496](https://redirect.github.com/javalin/javalin/pull/2496)
> * [core] Add config option to disable old version check warning by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2499](https://redirect.github.com/javalin/javalin/pull/2499)
> * Add static keyword to wsBefore and wsAfter in ApiBuilder by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2501](https://redirect.github.com/javalin/javalin/pull/2501)
> * [deps] Update Pebble to 4.0.0 by [`@​kamenitxan`](https://github.com/kamenitxan) in [javalin/javalin#2502](https://redirect.github.com/javalin/javalin/pull/2502)
> * [workflow]: Bump actions/checkout from 5 to 6 in the dependencies group by [`@​dependabot`](https://github.com/dependabot)[bot] in [javalin/javalin#2503](https://redirect.github.com/javalin/javalin/pull/2503)
> * [config] Rework JavalinConfig by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2504](https://redirect.github.com/javalin/javalin/pull/2504)
> * [tests] Add missing test cases by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2506](https://redirect.github.com/javalin/javalin/pull/2506)
> * [cors] Use JDK's URI class by [`@​Playacem`](https://github.com/Playacem) in [javalin/javalin#2180](https://redirect.github.com/javalin/javalin/pull/2180)
> * [micrometer] Restore Micrometer plugin for Javalin7/Jetty12 by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2511](https://redirect.github.com/javalin/javalin/pull/2511)
> * [json] Fix NoClassDefFoundError for ObjectMapper on Kotlin 2.x by [`@​fahrradflucht`](https://github.com/fahrradflucht) in [javalin/javalin#2510](https://redirect.github.com/javalin/javalin/pull/2510)
> * Extend Context#redirect to beforeMatched and rename skipIfExceptionOccurred by [`@​Copilot`](https://github.com/Copilot) in [javalin/javalin#2515](https://redirect.github.com/javalin/javalin/pull/2515)
> * [routing] Clean up unused interfaces and generics by [`@​tipsy`](https://github.com/tipsy) in [javalin/javalin#2517](https://redirect.github.com/javalin/javalin/pull/2517)

... (truncated)


Commits

* [`bbe55e5`](javalin/javalin@bbe55e5) [maven-release-plugin] prepare release javalin-parent-7.0.1
* [`f5a4934`](javalin/javalin@f5a4934) [logging] Allow for multiple request loggers ([#2539](https://redirect.github.com/javalin/javalin/issues/2539))
* [`e134377`](javalin/javalin@e134377) [micrometer] Fix interference with user-configured request logger ([#2533](https://redirect.github.com/javalin/javalin/issues/2533))
* [`5b5b2fb`](javalin/javalin@5b5b2fb) [websocket] Fix attributes set in wsBeforeUpgrade not persisting to onConnect
* [`d4b8c5b`](javalin/javalin@d4b8c5b) [ratelimitplugin] Fix regression in default key function
* [`698995d`](javalin/javalin@698995d) [endpoints] Add option to get the future matched enpoint
* [`9c3461f`](javalin/javalin@9c3461f) [docs] Update for v7
* [`6821dea`](javalin/javalin@6821dea) [maven-release-plugin] prepare for next development iteration
* [`3e02e28`](javalin/javalin@3e02e28) [maven-release-plugin] prepare release javalin-parent-7.0.0
* [`a02ecb7`](javalin/javalin@a02ecb7) [pom] Publish aggregator poms to fix release deploy
* Additional commits viewable in [compare view](javalin/javalin@javalin-parent-6.7.0...javalin-parent-7.0.1)
  
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
Dependabot commands and options
  
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot show  ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[cors] Use JDK'S URI class for origin parsing

3 participants