LCOV - code coverage report
Current view: top level - proxy/src/auth/backend - jwt.rs (source / functions) Coverage Total Hit
Test: 8b13a09a5c233d98abd4a0d3e59157e7db16d6fd.info Lines: 89.2 % 858 765
Test Date: 2024-11-21 10:53:51 Functions: 50.7 % 205 104

Function Name Sort by function name Hit count Sort by function hit count
<<proxy::auth::backend::jwt::OneOrMany as serde::de::Deserialize>::deserialize::OneOrManyVisitor as serde::de::Visitor>::expecting 0
<proxy::auth::backend::jwt::FetchAuthRulesError as core::fmt::Display>::fmt 0
>::from 0
::source 0
::fmt 0
<proxy::auth::backend::jwt::JwkCacheEntryLock>::get_or_update_jwk_cache::<_>::{closure#0}::{closure#0} 0
::get_or_update_jwk_cache::<_>::{closure#0}::{closure#0} 0
::get_or_update_jwk_cache::::{closure#0}::{closure#0} 0
::get_or_update_jwk_cache::::{closure#0}::{closure#0} 0
::get_or_update_jwk_cache::::{closure#0}::{closure#0} 0
<proxy::auth::backend::jwt::JwkCacheEntryLock>::renew_jwks::<_>::{closure#0}::{closure#1} 0
::renew_jwks::<_>::{closure#0}::{closure#1} 0
::renew_jwks::::{closure#0}::{closure#1} 0
::renew_jwks::::{closure#0}::{closure#1} 0
::renew_jwks::::{closure#0}::{closure#1} 0
<proxy::auth::backend::jwt::JwkCacheEntryLock>::try_acquire_permit 0
<proxy::auth::backend::jwt::JwkRenewalPermit>::into_owned 0
<proxy::auth::backend::jwt::JwkRenewalPermit>::try_acquire_permit 0
<proxy::auth::backend::jwt::JwkRenewalPermitInner>::into_owned 0
<proxy::auth::backend::jwt::JwtClaimsError as core::fmt::Display>::fmt 0
<proxy::auth::backend::jwt::JwtEncodingError as core::fmt::Display>::fmt 0
>::from 0
>::from 0
::source 0
::fmt 0
<proxy::auth::backend::jwt::JwtError as core::convert::From<base64::decode::DecodeError>>::from 0
<proxy::auth::backend::jwt::JwtError as core::convert::From<serde_json::error::Error>>::from 0
<proxy::auth::backend::jwt::KeyType as core::convert::From<&jose_jwk::key::Key>>::from 0
<proxy::auth::backend::jwt::JwtError as core::fmt::Display>::fmt 1
>::from 0
>::from 0
>::from 0
::source 0
::fmt 0
>::from 1
proxy::auth::backend::jwt::tests::check_jwk_keycloak_regression::{closure#0}::{closure#0} 1
proxy::auth::backend::jwt::tests::check_jwt_invalid_claims::{closure#0}::{closure#0} 1
proxy::auth::backend::jwt::tests::check_jwt_invalid_signature::{closure#0}::{closure#0} 1
proxy::auth::backend::jwt::tests::check_jwt_regression_cognito_issuer::{closure#0}::{closure#0} 1
proxy::auth::backend::jwt::tests::check_jwt_unknown_role::{closure#0}::{closure#0} 1
<<proxy::auth::backend::jwt::OneOrMany as serde::de::Deserialize>::deserialize::OneOrManyVisitor as serde::de::Visitor>::visit_str::<_> 2
<::deserialize::OneOrManyVisitor as serde::de::Visitor>::visit_str::<_> 0
<::deserialize::OneOrManyVisitor as serde::de::Visitor>::visit_str:: 2
proxy::auth::backend::jwt::tests::check_jwk_keycloak_regression 2
proxy::auth::backend::jwt::tests::check_jwk_keycloak_regression 1
proxy::auth::backend::jwt::tests::check_jwk_keycloak_regression::{closure#0} 1
proxy::auth::backend::jwt::tests::check_jwt_happy_path 2
proxy::auth::backend::jwt::tests::check_jwt_happy_path 1
proxy::auth::backend::jwt::tests::check_jwt_happy_path::{closure#0} 1
proxy::auth::backend::jwt::tests::check_jwt_invalid_claims 2
proxy::auth::backend::jwt::tests::check_jwt_invalid_claims 1
proxy::auth::backend::jwt::tests::check_jwt_invalid_claims::{closure#0} 1
proxy::auth::backend::jwt::tests::check_jwt_invalid_signature 2
proxy::auth::backend::jwt::tests::check_jwt_invalid_signature 1
proxy::auth::backend::jwt::tests::check_jwt_invalid_signature::{closure#0} 1
proxy::auth::backend::jwt::tests::check_jwt_regression_cognito_issuer 2
proxy::auth::backend::jwt::tests::check_jwt_regression_cognito_issuer 1
proxy::auth::backend::jwt::tests::check_jwt_regression_cognito_issuer::{closure#0} 1
proxy::auth::backend::jwt::tests::check_jwt_unknown_role 2
proxy::auth::backend::jwt::tests::check_jwt_unknown_role 1
proxy::auth::backend::jwt::tests::check_jwt_unknown_role::{closure#0} 1
proxy::auth::backend::jwt::tests::new_ec_jwt 3
proxy::auth::backend::jwt::tests::check_jwt_happy_path::{closure#0}::{closure#0} 4
proxy::auth::backend::jwt::tests::new_rsa_jwk 4
proxy::auth::backend::jwt::tests::new_rsa_jwt 4
proxy::auth::backend::jwt::verify_rsa_signature 5
<proxy::auth::backend::jwt::JwkCacheEntryLock>::check_jwt::<_>::{closure#0}::{closure#0} 6
::check_jwt::<_>::{closure#0}::{closure#0} 0
::check_jwt::::{closure#0}::{closure#0} 0
::check_jwt::::{closure#0}::{closure#0} 0
::check_jwt::::{closure#0}::{closure#0} 6
proxy::auth::backend::jwt::tests::jwks_server::<proxy::auth::backend::jwt::tests::check_jwt_happy_path::{closure#0}::{closure#0}> 6
proxy::auth::backend::jwt::tests::jwks_server:: 1
proxy::auth::backend::jwt::tests::jwks_server:: 1
proxy::auth::backend::jwt::tests::jwks_server:: 1
proxy::auth::backend::jwt::tests::jwks_server:: 1
proxy::auth::backend::jwt::tests::jwks_server:: 1
proxy::auth::backend::jwt::tests::jwks_server:: 1
proxy::auth::backend::jwt::tests::jwks_server::<proxy::auth::backend::jwt::tests::check_jwt_happy_path::{closure#0}::{closure#0}>::{closure#0} 6
proxy::auth::backend::jwt::tests::jwks_server::::{closure#0} 1
proxy::auth::backend::jwt::tests::jwks_server::::{closure#0} 1
proxy::auth::backend::jwt::tests::jwks_server::::{closure#0} 1
proxy::auth::backend::jwt::tests::jwks_server::::{closure#0} 1
proxy::auth::backend::jwt::tests::jwks_server::::{closure#0} 1
proxy::auth::backend::jwt::tests::jwks_server::::{closure#0} 1
proxy::auth::backend::jwt::tests::jwks_server::<proxy::auth::backend::jwt::tests::check_jwt_happy_path::{closure#0}::{closure#0}>::{closure#0}::{closure#1} 6
proxy::auth::backend::jwt::tests::jwks_server::::{closure#0}::{closure#1} 1
proxy::auth::backend::jwt::tests::jwks_server::::{closure#0}::{closure#1} 1
proxy::auth::backend::jwt::tests::jwks_server::::{closure#0}::{closure#1} 1
proxy::auth::backend::jwt::tests::jwks_server::::{closure#0}::{closure#1} 1
proxy::auth::backend::jwt::tests::jwks_server::::{closure#0}::{closure#1} 1
proxy::auth::backend::jwt::tests::jwks_server::::{closure#0}::{closure#1} 1
proxy::auth::backend::jwt::tests::new_ec_jwk 6
<proxy::auth::backend::jwt::JwkCache>::check_jwt::<_>::{closure#0}::{closure#0} 7
::check_jwt::<_>::{closure#0}::{closure#0} 0
::check_jwt::::{closure#0}::{closure#0} 0
::check_jwt::::{closure#0}::{closure#0} 0
::check_jwt::::{closure#0}::{closure#0} 7
<proxy::auth::backend::jwt::JwkCacheEntryLock as core::default::Default>::default 7
<proxy::auth::backend::jwt::JwkCacheEntryLock>::renew_jwks::<_> 7
::renew_jwks::<_> 0
::renew_jwks:: 0
::renew_jwks:: 0
::renew_jwks:: 7
<proxy::auth::backend::jwt::JwkCacheEntryLock>::renew_jwks::<_>::{closure#0} 7
::renew_jwks::<_>::{closure#0} 0
::renew_jwks::::{closure#0} 0
::renew_jwks::::{closure#0} 0
::renew_jwks::::{closure#0} 7
<proxy::auth::backend::jwt::JwkRenewalPermit as core::ops::drop::Drop>::drop 7
<proxy::auth::backend::jwt::tests::Fetch as proxy::auth::backend::jwt::FetchAuthRules>::fetch_auth_rules 7
<proxy::auth::backend::jwt::tests::Fetch as proxy::auth::backend::jwt::FetchAuthRules>::fetch_auth_rules::{closure#0} 7
proxy::auth::backend::jwt::tests::build_jwt_payload 7
proxy::auth::backend::jwt::tests::new_custom_ec_jwt::<serde_json::value::Value> 8
proxy::auth::backend::jwt::tests::new_custom_ec_jwt::, typed_json::expr_de::Expr<&str>>>, core::option::Option, typed_json::expr_de::Expr<&str>>>), (core::option::Option, typed_json::expr_de::Expr<&str>>>, core::option::Option, typed_json::expr_de::Expr<&str>>>)), (((core::option::Option, typed_json::expr_de::Expr<&str>>>, core::option::Option, typed_json::expr_de::Expr<&str>>>), (core::option::Option, typed_json::expr_de::Expr<&str>>>, core::option::Option, typed_json::expr_de::Expr>>)), ((core::option::Option, typed_json::expr_de::Expr>>, core::option::Option, typed_json::expr_de::Expr>>), (core::option::Option, typed_json::expr_de::Expr<&str>>>, core::option::Option, typed_json::expr_de::Expr<&str>>>))))>> 1
proxy::auth::backend::jwt::tests::new_custom_ec_jwt:: 7
proxy::auth::backend::jwt::tests::now 8
<proxy::auth::backend::jwt::JwkCache as core::default::Default>::default 9
<proxy::auth::backend::jwt::JwkCacheEntryLock>::renew_jwks::<_>::{closure#0}::{closure#0} 9
::renew_jwks::<_>::{closure#0}::{closure#0} 0
::renew_jwks::::{closure#0}::{closure#0} 0
::renew_jwks::::{closure#0}::{closure#0} 0
::renew_jwks::::{closure#0}::{closure#0} 9
proxy::auth::backend::jwt::tests::jwks_server::<proxy::auth::backend::jwt::tests::check_jwt_happy_path::{closure#0}::{closure#0}>::{closure#0}::{closure#0} 9
proxy::auth::backend::jwt::tests::jwks_server::::{closure#0}::{closure#0} 1
proxy::auth::backend::jwt::tests::jwks_server::::{closure#0}::{closure#0} 1
proxy::auth::backend::jwt::tests::jwks_server::::{closure#0}::{closure#0} 1
proxy::auth::backend::jwt::tests::jwks_server::::{closure#0}::{closure#0} 1
proxy::auth::backend::jwt::tests::jwks_server::::{closure#0}::{closure#0} 1
proxy::auth::backend::jwt::tests::jwks_server::::{closure#0}::{closure#0} 4
proxy::auth::backend::jwt::tests::jwks_server::<proxy::auth::backend::jwt::tests::check_jwt_happy_path::{closure#0}::{closure#0}>::{closure#0}::{closure#0}::{closure#0} 9
proxy::auth::backend::jwt::tests::jwks_server::::{closure#0}::{closure#0}::{closure#0} 1
proxy::auth::backend::jwt::tests::jwks_server::::{closure#0}::{closure#0}::{closure#0} 1
proxy::auth::backend::jwt::tests::jwks_server::::{closure#0}::{closure#0}::{closure#0} 1
proxy::auth::backend::jwt::tests::jwks_server::::{closure#0}::{closure#0}::{closure#0} 1
proxy::auth::backend::jwt::tests::jwks_server::::{closure#0}::{closure#0}::{closure#0} 1
proxy::auth::backend::jwt::tests::jwks_server::::{closure#0}::{closure#0}::{closure#0} 4
<<proxy::auth::backend::jwt::OneOrMany as serde::de::Deserialize>::deserialize::OneOrManyVisitor as serde::de::Visitor>::visit_seq::<_> 13
<::deserialize::OneOrManyVisitor as serde::de::Visitor>::visit_seq::<_> 0
<::deserialize::OneOrManyVisitor as serde::de::Visitor>::visit_seq::> 13
proxy::auth::backend::jwt::verify_ec_signature 13
<proxy::auth::backend::jwt::JwkCacheEntryLock>::acquire_permit 14
::acquire_permit 7
::acquire_permit::{closure#0} 7
<proxy::auth::backend::jwt::JwkRenewalPermit>::acquire_permit 14
::acquire_permit 7
::acquire_permit::{closure#0} 7
<proxy::auth::backend::jwt::OneOrMany as serde::de::Deserialize>::deserialize::<_> 15
::deserialize::<_> 0
::deserialize::<&mut serde_json::de::Deserializer> 15
proxy::auth::backend::jwt::tests::build_custom_jwt_payload::<serde_json::value::Value> 15
proxy::auth::backend::jwt::tests::build_custom_jwt_payload::, typed_json::expr_de::Expr<&str>>>, core::option::Option, typed_json::expr_de::Expr<&str>>>), (core::option::Option, typed_json::expr_de::Expr<&str>>>, core::option::Option, typed_json::expr_de::Expr<&str>>>)), (((core::option::Option, typed_json::expr_de::Expr<&str>>>, core::option::Option, typed_json::expr_de::Expr<&str>>>), (core::option::Option, typed_json::expr_de::Expr<&str>>>, core::option::Option, typed_json::expr_de::Expr>>)), ((core::option::Option, typed_json::expr_de::Expr>>, core::option::Option, typed_json::expr_de::Expr>>), (core::option::Option, typed_json::expr_de::Expr<&str>>>, core::option::Option, typed_json::expr_de::Expr<&str>>>))))>> 1
proxy::auth::backend::jwt::tests::build_custom_jwt_payload:: 7
proxy::auth::backend::jwt::tests::build_custom_jwt_payload::, typed_json::expr_de::Expr>>, (core::option::Option, typed_json::expr_de::Expr>>, core::option::Option, typed_json::array::Array<(core::option::Option>, (core::option::Option>, core::option::Option>))>>>)), ((core::option::Option, typed_json::expr_de::Expr<&str>>>, core::option::Option, typed_json::expr_de::Expr<&str>>>), (core::option::Option, typed_json::expr_de::Expr<&str>>>, core::option::Option, typed_json::expr_de::Expr<&str>>>)))>> 7
<proxy::auth::backend::jwt::JwkCacheEntry>::find_jwk_and_audience::{closure#1}::{closure#0} 18
<proxy::auth::backend::jwt::JwkCache>::check_jwt::<_> 19
::check_jwt::<_> 0
::check_jwt:: 0
::check_jwt:: 0
::check_jwt:: 19
<proxy::auth::backend::jwt::JwkCache>::check_jwt::<_>::{closure#0} 19
::check_jwt::<_>::{closure#0} 0
::check_jwt::::{closure#0} 0
::check_jwt::::{closure#0} 0
::check_jwt::::{closure#0} 19
<proxy::auth::backend::jwt::JwkCacheEntry>::find_jwk_and_audience 19
<proxy::auth::backend::jwt::JwkCacheEntryLock>::check_jwt::<_> 19
::check_jwt::<_> 0
::check_jwt:: 0
::check_jwt:: 0
::check_jwt:: 19
<proxy::auth::backend::jwt::JwkCacheEntryLock>::check_jwt::<_>::{closure#0} 19
::check_jwt::<_>::{closure#0} 0
::check_jwt::::{closure#0} 0
::check_jwt::::{closure#0} 0
::check_jwt::::{closure#0} 19
<proxy::auth::backend::jwt::JwkCacheEntryLock>::get_or_update_jwk_cache::<_> 19
::get_or_update_jwk_cache::<_> 0
::get_or_update_jwk_cache:: 0
::get_or_update_jwk_cache:: 0
::get_or_update_jwk_cache:: 19
<proxy::auth::backend::jwt::JwkCacheEntryLock>::get_or_update_jwk_cache::<_>::{closure#0} 19
::get_or_update_jwk_cache::<_>::{closure#0} 0
::get_or_update_jwk_cache::::{closure#0} 0
::get_or_update_jwk_cache::::{closure#0} 0
::get_or_update_jwk_cache::::{closure#0} 19
proxy::auth::backend::jwt::numeric_date_opt::<_> 21
proxy::auth::backend::jwt::numeric_date_opt::<_> 0
proxy::auth::backend::jwt::numeric_date_opt::<&mut serde_json::de::Deserializer> 21
proxy::auth::backend::jwt::numeric_date_opt::<_>::{closure#0} 21
proxy::auth::backend::jwt::numeric_date_opt::<_>::{closure#0} 0
proxy::auth::backend::jwt::numeric_date_opt::<&mut serde_json::de::Deserializer>::{closure#0} 21
<proxy::auth::backend::jwt::JwkCacheEntry>::find_jwk_and_audience::{closure#1} 22
<proxy::auth::backend::jwt::KeySet>::find_key 22
<<proxy::auth::backend::jwt::JwkSet as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting 27
<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> 0
<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting 0
<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> 0
<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> 0
<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> 0
<::deserialize::__Visitor as serde::de::Visitor>::expecting 0
<::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_> 0
<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> 0
<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::> 0
<::deserialize::__Field as serde::de::Deserialize>::deserialize::> 9
<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: 9
<::deserialize::__Visitor as serde::de::Visitor>::visit_map::> 9
<proxy::auth::backend::jwt::KeySet>::find_key::{closure#0} 30
<proxy::auth::backend::jwt::JwkCacheEntry>::find_jwk_and_audience::{closure#0} 52
::find_jwk_and_audience::{closure#0} 23
::find_jwk_and_audience::{closure#0}::{closure#0} 29
<<proxy::auth::backend::jwt::JwtHeader as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting 95
<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> 0
<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting 0
<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> 0
<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> 0
<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> 0
<::deserialize::__Visitor as serde::de::Visitor>::expecting 0
<::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_> 0
<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> 0
<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::> 0
<::deserialize::__Visitor as serde::de::Visitor>::visit_map::> 19
<::deserialize::__Field as serde::de::Deserialize>::deserialize::> 38
<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: 38
<<proxy::auth::backend::jwt::JwtPayload as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting 204
<<::deserialize::__Visitor as serde::de::Visitor>::visit_map::__DeserializeWith as serde::de::Deserialize>::deserialize::<_> 0
<<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::__DeserializeWith as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> 0
<<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::__DeserializeWith as serde::de::Deserialize>::deserialize::<_> 0
<::deserialize::__Field as serde::de::Deserialize>::deserialize::<_> 0
<::deserialize::__FieldVisitor as serde::de::Visitor>::expecting 0
<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_> 0
<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_> 0
<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_> 0
<::deserialize::__Visitor as serde::de::Visitor>::expecting 0
<::deserialize::__Visitor as serde::de::Visitor>::visit_map::<_> 0
<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_> 0
<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_>::{closure#0} 0
<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::<_>::{closure#1} 0
<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::> 0
<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::>::{closure#0} 0
<::deserialize::__Visitor as serde::de::Visitor>::visit_seq::>::{closure#1} 0
<::deserialize::__Visitor as serde::de::Visitor>::visit_map::> 17
<<::deserialize::__Visitor as serde::de::Visitor>::visit_map::__DeserializeWith as serde::de::Deserialize>::deserialize::<&mut serde_json::de::Deserializer> 21
<::deserialize::__Field as serde::de::Deserialize>::deserialize::> 83
<::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str:: 83

Generated by: LCOV version 2.1-beta