lpotthast / axum-keycloak-auth

Protect axum routes with a JWT emitted by Keycloak.
https://crates.io/crates/axum-keycloak-auth
Apache License 2.0
34 stars 13 forks source link

axum oneshot tests fails because of failing assertion self.layer.instance.discovery.is_pending() #25

Open Tockra opened 2 months ago

Tockra commented 2 months ago

Hey,

I've following tests which worked before the updates from before 4 weeks:

#[parameterized(endpoint = { (axum::http::Method::GET, "/ws/invoices"), (axum::http::Method::GET,"/ws/positions"), (axum::http::Method::GET,"/api/positions"),(axum::http::Method::POST,"/api/positions"),(axum::http::Method::DELETE,"/api/positions"),(axum::http::Method::PUT,"/api/positions/any-id"), (axum::http::Method::POST,"/api/products"), (axum::http::Method::GET,"/api/products"), (axum::http::Method::GET,"/api/customers"), (axum::http::Method::POST,"/api/suppliers"),(axum::http::Method::POST,"/api/customers"),(axum::http::Method::POST,"/api/customers/some/addresses")})]
#[parameterized_macro(tokio::test)]
async fn given_user_is_not_logged_in_when_call_endpoint_then_return_unauthorized(
    endpoint: (http::method::Method, &str),
) {
    let dummy_config = ember_backend::Config {
        auth_server_url: get_keycloak_connection_string().await,
        auth_realm: "testsetup-company".to_string(),
        db_url: get_mongodb_connection_string().await,
        db_name: "testsetup-company".to_string(),
        db_server_selection_timeout_ms: None,
        allowed_origin: None,
    };

    let axum_application = ember_backend::app(dummy_config).await;

    let response = axum_application
        .oneshot(
            Request::builder()
                .method(endpoint.0)
                .uri(get_url(endpoint.1))
                .body(axum::body::Body::empty())
                .unwrap(),
        )
        .await
        .unwrap();

    assert_eq!(response.status(), axum::http::StatusCode::UNAUTHORIZED);
}

After that they fail with a panic:

---- given_user_is_not_logged_in_when_call_endpoint_then_return_unauthorized::case_3 stdout ----
thread 'given_user_is_not_logged_in_when_call_endpoint_then_return_unauthorized::case_3' panicked at /Users/my-user/.cargo/git/checkouts/axum-keycloak-auth-1f78f40fd8a30138/ee40c2d/src/service.rs:63:13:
assertion failed: self.layer.instance.discovery.is_pending()
stack backtrace:
   0:        0x10484901c - std::backtrace_rs::backtrace::libunwind::trace::h6de1cbf3f672a4f8
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:105:5
   1:        0x10484901c - std::backtrace_rs::backtrace::trace_unsynchronized::hd0de2d5ef13b6f4d
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:        0x10484901c - std::sys_common::backtrace::_print_fmt::h2a33510d9b3bb866
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/sys_common/backtrace.rs:68:5
   3:        0x10484901c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h01b2beffade888b2
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/sys_common/backtrace.rs:44:22
   4:        0x10486c290 - core::fmt::rt::Argument::fmt::h5ddc0f22b2928899
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/fmt/rt.rs:142:9
   5:        0x10486c290 - core::fmt::write::hbadb443a71b75f23
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/fmt/mod.rs:1153:17
   6:        0x1048454b0 - std::io::Write::write_fmt::h16a0d427524eebc9
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/io/mod.rs:1843:15
   7:        0x104848e74 - std::sys_common::backtrace::_print::h3cd1786cbb1caf0f
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/sys_common/backtrace.rs:47:5
   8:        0x104848e74 - std::sys_common::backtrace::print::h28349e5c25acbac7
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/sys_common/backtrace.rs:34:9
   9:        0x10484a858 - std::panicking::default_hook::{{closure}}::hd24b6196784d991e
  10:        0x10484a498 - std::panicking::default_hook::hfcec80a2720c8c73
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:289:9
  11:        0x1030a1f58 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h498f48dfd5eb5e82
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/alloc/src/boxed.rs:2034:9
  12:        0x1030a1f58 - test::test_main::{{closure}}::h61e58e05fad2e62e
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/test/src/lib.rs:138:21
  13:        0x10484b174 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h9bd8c4baacf94fdd
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/alloc/src/boxed.rs:2034:9
  14:        0x10484b174 - std::panicking::rust_panic_with_hook::h84760468187ddc85
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:783:13
  15:        0x10484ab0c - std::panicking::begin_panic_handler::{{closure}}::he666a5eb600a7203
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:649:13
  16:        0x1048494a0 - std::sys_common::backtrace::__rust_end_short_backtrace::h592f44d2bf9f843f
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/sys_common/backtrace.rs:171:18
  17:        0x10484a8b0 - rust_begin_unwind
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:645:5
  18:        0x1048a11d4 - core::panicking::panic_fmt::h98bbf7bdf4994454
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/panicking.rs:72:14
  19:        0x1048a125c - core::panicking::panic::hc59c8a709a9b37ae
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/panicking.rs:145:5
  20:        0x1036c4b44 - <axum_keycloak_auth::service::KeycloakAuthService<S,R,Extra> as tower_service::Service<http::request::Request<axum_core::body::Body>>>::poll_ready::hbb5879d0ebb7a0b2
                               at /Users/my-user/.cargo/git/checkouts/axum-keycloak-auth-1f78f40fd8a30138/ee40c2d/src/service.rs:63:13
  21:        0x10370c824 - <tower::util::map_response::MapResponse<S,F> as tower_service::Service<Request>>::poll_ready::h4416f0f7ac451b94
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tower-0.4.13/src/util/map_response.rs:70:9
  22:        0x1036da764 - <tower::util::map_err::MapErr<S,F> as tower_service::Service<Request>>::poll_ready::h185a735f563d937f
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tower-0.4.13/src/util/map_err.rs:70:9
  23:        0x1036e97e0 - <tower::util::map_request::MapRequest<S,F> as tower_service::Service<R1>>::poll_ready::h6a41edc312398190
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tower-0.4.13/src/util/map_request.rs:54:9
  24:        0x10370c9dc - <tower::util::map_response::MapResponse<S,F> as tower_service::Service<Request>>::poll_ready::hfa74cca565a98d26
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tower-0.4.13/src/util/map_response.rs:70:9
  25:        0x1033c342c - <tower::util::map_future::MapFuture<S,F> as tower_service::Service<R>>::poll_ready::hc6b0abb140fbc8e3
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tower-0.4.13/src/util/map_future.rs:61:9
  26:        0x1044fe108 - <alloc::boxed::Box<S> as tower_service::Service<Request>>::poll_ready::h2f82ce7acf1f4214
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tower-service-0.3.2/src/lib.rs:383:9
  27:        0x1044dbd58 - <tower::util::boxed_clone::BoxCloneService<T,U,E> as tower_service::Service<T>>::poll_ready::h086eb59c05b3860c
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tower-0.4.13/src/util/boxed_clone.rs:96:9
  28:        0x1044f4200 - <tower::util::oneshot::Oneshot<S,Req> as core::future::future::Future>::poll::h6a492a1190d2e9cb
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tower-0.4.13/src/util/oneshot.rs:92:36
  29:        0x1044f13ac - <axum::routing::route::RouteFuture<E> as core::future::future::Future>::poll::h1f4dd5562375e2ed
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/axum-0.7.5/src/routing/route.rs:162:61
  30:        0x102fba7b4 - <tower_http::cors::ResponseFuture<F> as core::future::future::Future>::poll::hc3988d3b36e6be0a
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tower-http-0.5.2/src/cors/mod.rs:686:56
  31:        0x102fba5b0 - <F as futures_core::future::TryFuture>::try_poll::hb6d00c0fd2a39f35
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-core-0.3.30/src/future.rs:82:9
  32:        0x102f79768 - <futures_util::future::try_future::into_future::IntoFuture<Fut> as core::future::future::Future>::poll::h39aabfccb563538c
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.30/src/future/try_future/into_future.rs:34:9
  33:        0x10306d4bc - <futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll::h29b47db210aa8368
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.30/src/future/future/map.rs:55:37
  34:        0x102f8e3c0 - <futures_util::future::future::Map<Fut,F> as core::future::future::Future>::poll::h399280d28c95d0b5
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.30/src/lib.rs:91:13
  35:        0x10306c5ac - <futures_util::future::try_future::MapOk<Fut,F> as core::future::future::Future>::poll::hb993c494ea93d3f8
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.30/src/lib.rs:91:13
  36:        0x102fa6cfc - <tower::util::map_response::MapResponseFuture<F,N> as core::future::future::Future>::poll::h1f8f848d252b7c54
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tower-0.4.13/src/macros.rs:38:17
  37:        0x102fa70c4 - <F as futures_core::future::TryFuture>::try_poll::h11713fb277bb9b6e
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-core-0.3.30/src/future.rs:82:9
  38:        0x102f797e0 - <futures_util::future::try_future::into_future::IntoFuture<Fut> as core::future::future::Future>::poll::h9c593cc8c61bee4b
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.30/src/future/try_future/into_future.rs:34:9
  39:        0x10306d8b4 - <futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll::h6581e521cb00b5c1
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.30/src/future/future/map.rs:55:37
  40:        0x102f8e3fc - <futures_util::future::future::Map<Fut,F> as core::future::future::Future>::poll::h52a6de330517783e
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.30/src/lib.rs:91:13
  41:        0x10306c5e8 - <futures_util::future::try_future::MapErr<Fut,F> as core::future::future::Future>::poll::hf894b76e8e6459b1
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.30/src/lib.rs:91:13
  42:        0x102f90b08 - <tower::util::map_err::MapErrFuture<F,N> as core::future::future::Future>::poll::h094be6113db31951
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tower-0.4.13/src/macros.rs:38:17
  43:        0x102f90954 - <F as futures_core::future::TryFuture>::try_poll::h118d080c229968eb
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-core-0.3.30/src/future.rs:82:9
  44:        0x102f797a4 - <futures_util::future::try_future::into_future::IntoFuture<Fut> as core::future::future::Future>::poll::h8bd09ed3c63b4e31
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.30/src/future/try_future/into_future.rs:34:9
  45:        0x10306dab0 - <futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll::hef48acd9c15b2fdb
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.30/src/future/future/map.rs:55:37
  46:        0x102f8e438 - <futures_util::future::future::Map<Fut,F> as core::future::future::Future>::poll::h7b2a2e1a6673bd2c
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.30/src/lib.rs:91:13
  47:        0x10306c534 - <futures_util::future::try_future::MapOk<Fut,F> as core::future::future::Future>::poll::h4fb230060176fa11
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.30/src/lib.rs:91:13
  48:        0x102fa6d38 - <tower::util::map_response::MapResponseFuture<F,N> as core::future::future::Future>::poll::h2f82934a93087810
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tower-0.4.13/src/macros.rs:38:17
  49:        0x1044eb0fc - <core::pin::Pin<P> as core::future::future::Future>::poll::h0eb54ce302135d96
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/future/future.rs:123:9
  50:        0x1044f4228 - <tower::util::oneshot::Oneshot<S,Req> as core::future::future::Future>::poll::h6a492a1190d2e9cb
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tower-0.4.13/src/util/oneshot.rs:97:38
  51:        0x1044f13ac - <axum::routing::route::RouteFuture<E> as core::future::future::Future>::poll::h1f4dd5562375e2ed
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/axum-0.7.5/src/routing/route.rs:162:61
  52:        0x102f8c1b4 - <tower::util::oneshot::Oneshot<S,Req> as core::future::future::Future>::poll::hbef581f811e8f17e
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tower-0.4.13/src/util/oneshot.rs:97:38
  53:        0x10300fbb4 - auth::given_user_is_not_logged_in_when_call_endpoint_then_return_unauthorized::case_3::{{closure}}::h34c0efbc2b929ac3
                               at /Users/my-user/it-financeflow/ember/ember-backend/tests/auth.rs:35:10
  54:        0x102f90df8 - <core::pin::Pin<P> as core::future::future::Future>::poll::h0fc34fa05b5257f2
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/future/future.rs:123:9
  55:        0x102f910dc - <core::pin::Pin<P> as core::future::future::Future>::poll::hbceb225833b1254b
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/future/future.rs:123:9
  56:        0x102f89648 - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}::hac4e744d03f53bb1
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.38.0/src/runtime/scheduler/current_thread/mod.rs:659:57
  57:        0x102f89524 - tokio::runtime::coop::with_budget::hd5fb834e3aee81de
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.38.0/src/runtime/coop.rs:107:5
  58:        0x102f89524 - tokio::runtime::coop::budget::h96e432872b225feb
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.38.0/src/runtime/coop.rs:73:5
  59:        0x102f89524 - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::hfb23d3d34116c556
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.38.0/src/runtime/scheduler/current_thread/mod.rs:659:25
  60:        0x102f83f54 - tokio::runtime::scheduler::current_thread::Context::enter::h964b44412fd84caf
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.38.0/src/runtime/scheduler/current_thread/mod.rs:404:19
  61:        0x102f87658 - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::h4de6b388f9484bb8
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.38.0/src/runtime/scheduler/current_thread/mod.rs:658:36
  62:        0x102f86bb8 - tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}::h67e817f66a9a057a
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.38.0/src/runtime/scheduler/current_thread/mod.rs:737:68
  63:        0x102f6e8a0 - tokio::runtime::context::scoped::Scoped<T>::set::hfbe99c2880658157
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.38.0/src/runtime/context/scoped.rs:40:9
  64:        0x102feb280 - tokio::runtime::context::set_scheduler::{{closure}}::h5727f7288ec605d4
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.38.0/src/runtime/context.rs:180:26
  65:        0x102ff0098 - std::thread::local::LocalKey<T>::try_with::hb45b33b09ecd0f30
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/thread/local.rs:284:16
  66:        0x102fedf8c - std::thread::local::LocalKey<T>::with::h00c05383ad4ba0a8
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/thread/local.rs:260:9
  67:        0x102feb084 - tokio::runtime::context::set_scheduler::h075bd27a35e543ad
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.38.0/src/runtime/context.rs:180:9
  68:        0x102f86398 - tokio::runtime::scheduler::current_thread::CoreGuard::enter::h558f5a82efcbeac8
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.38.0/src/runtime/scheduler/current_thread/mod.rs:737:27
  69:        0x102f86d3c - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::h887089af74e35640
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.38.0/src/runtime/scheduler/current_thread/mod.rs:646:19
  70:        0x102f82740 - tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}::ha556435d3f9c2723
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.38.0/src/runtime/scheduler/current_thread/mod.rs:175:28
  71:        0x102f8a5a4 - tokio::runtime::context::runtime::enter_runtime::he9539d90234c451f
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.38.0/src/runtime/context/runtime.rs:65:16
  72:        0x102f81dcc - tokio::runtime::scheduler::current_thread::CurrentThread::block_on::he0a34f6ed8ab8401
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.38.0/src/runtime/scheduler/current_thread/mod.rs:167:9
  73:        0x102fecbdc - tokio::runtime::runtime::Runtime::block_on::h31d542eba2e36550
                               at /Users/my-user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.38.0/src/runtime/runtime.rs:347:47
  74:        0x102fbcab8 - auth::given_user_is_not_logged_in_when_call_endpoint_then_return_unauthorized::case_3::h86ebbe7e5be311fd
                               at /Users/my-user/it-financeflow/ember/ember-backend/tests/auth.rs:15:3
  75:        0x10300f284 - auth::given_user_is_not_logged_in_when_call_endpoint_then_return_unauthorized::case_3::{{closure}}::h543ef6ff75b99b02
                               at /Users/my-user/it-financeflow/ember/ember-backend/tests/auth.rs:11:580
  76:        0x102fd46f8 - core::ops::function::FnOnce::call_once::hf643f840e3e36d87
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/ops/function.rs:250:5
  77:        0x1030a5c80 - core::ops::function::FnOnce::call_once::hdc78704e3375b6cc
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/ops/function.rs:250:5
  78:        0x1030a5c80 - test::__rust_begin_short_backtrace::ha00c83e9361a315d
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/test/src/lib.rs:621:18
  79:        0x1030a53f8 - test::run_test_in_process::{{closure}}::h049a3922169151a8
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/test/src/lib.rs:644:60
  80:        0x1030a53f8 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h59b471ae83578d9f
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/panic/unwind_safe.rs:272:9
  81:        0x1030a53f8 - std::panicking::try::do_call::hdcae0245e55fa0c0
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:552:40
  82:        0x1030a53f8 - std::panicking::try::h9dc0119b564ac9cf
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:516:19
  83:        0x1030a53f8 - std::panic::catch_unwind::hab329ede8b56df3b
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panic.rs:146:14
  84:        0x1030a53f8 - test::run_test_in_process::h42ddc94bb4665859
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/test/src/lib.rs:644:27
  85:        0x1030a53f8 - test::run_test::{{closure}}::h5bc06caf086790ae
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/test/src/lib.rs:567:43
  86:        0x103077db4 - test::run_test::{{closure}}::hf12704d7fb5fe7af
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/test/src/lib.rs:595:41
  87:        0x103077db4 - std::sys_common::backtrace::__rust_begin_short_backtrace::hf83ba910f7522d55
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/sys_common/backtrace.rs:155:18
  88:        0x10307c2e8 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::he9daeef7c6950e9b
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/thread/mod.rs:528:17
  89:        0x10307c2e8 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h0202fb4f2537b363
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/panic/unwind_safe.rs:272:9
  90:        0x10307c2e8 - std::panicking::try::do_call::hbfefa096cde588e7
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:552:40
  91:        0x10307c2e8 - std::panicking::try::hebf8b6694f3819d7
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:516:19
  92:        0x10307c2e8 - std::panic::catch_unwind::h62e366e1b226d45f
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panic.rs:146:14
  93:        0x10307c2e8 - std::thread::Builder::spawn_unchecked_::{{closure}}::h2dcb575929bd939b
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/thread/mod.rs:527:30
  94:        0x10307c2e8 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h28247bdc23f84175
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/ops/function.rs:250:5
  95:        0x10484f6b4 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::heeda316fdad4f743
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/alloc/src/boxed.rs:2020:9
  96:        0x10484f6b4 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h0d3160611f7295b1
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/alloc/src/boxed.rs:2020:9
  97:        0x10484f6b4 - std::sys::pal::unix::thread::Thread::new::thread_start::h9266fbbdd0c3d8be
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/sys/pal/unix/thread.rs:108:17
  98:        0x187c4af94 - __pthread_joiner_wake

I know it is caused by the new line : https://github.com/lpotthast/axum-keycloak-auth/blob/ee40c2d2d5888ab5dc93da4070a76b748810079f/src/service.rs#L63

But I have no idea how to fix that issue.

T