File tree Expand file tree Collapse file tree 3 files changed +21
-5
lines changed
Expand file tree Collapse file tree 3 files changed +21
-5
lines changed Original file line number Diff line number Diff line change 11use crate :: openid:: jwt:: types:: cert:: Jwks ;
2+ use crate :: openid:: jwt:: types:: provider:: JwtIssuers ;
23use crate :: openid:: types:: provider:: { OpenIdCertificate , OpenIdDelegationProvider , OpenIdProvider } ;
34use junobuild_shared:: data:: version:: next_version;
45use junobuild_shared:: ic:: api:: time;
@@ -48,6 +49,12 @@ impl OpenIdDelegationProvider {
4849 }
4950}
5051
52+ impl JwtIssuers for OpenIdDelegationProvider {
53+ fn issuers ( & self ) -> & [ & ' static str ] {
54+ self . issuers ( )
55+ }
56+ }
57+
5158impl Versioned for OpenIdCertificate {
5259 fn version ( & self ) -> Option < Version > {
5360 self . version
Original file line number Diff line number Diff line change 11use crate :: openid:: jwt:: header:: decode_jwt_header;
22use crate :: openid:: jwt:: types:: errors:: JwtFindProviderError ;
3+ use crate :: openid:: jwt:: types:: provider:: JwtIssuers ;
34use crate :: openid:: jwt:: types:: token:: UnsafeClaims ;
4- use crate :: openid:: types:: provider:: OpenIdDelegationProvider ;
5- use crate :: state:: types:: config:: { OpenIdAuthProviderConfig , OpenIdAuthProviders } ;
65use jsonwebtoken:: dangerous;
6+ use std:: collections:: BTreeMap ;
77
88/// ⚠️ **Warning:** This function decodes the JWT payload *without verifying its signature*.
99/// Use only to inspect claims (e.g., `iss`) before performing a verified decode.
10- pub fn unsafe_find_jwt_provider < ' a > (
11- providers : & ' a OpenIdAuthProviders ,
10+ pub fn unsafe_find_jwt_provider < ' a , Provider , Config > (
11+ providers : & ' a BTreeMap < Provider , Config > ,
1212 jwt : & str ,
13- ) -> Result < ( OpenIdDelegationProvider , & ' a OpenIdAuthProviderConfig ) , JwtFindProviderError > {
13+ ) -> Result < ( Provider , & ' a Config ) , JwtFindProviderError >
14+ where
15+ Provider : Clone + JwtIssuers ,
16+ {
1417 // 1) Header sanity check
1518 decode_jwt_header ( jwt) . map_err ( JwtFindProviderError :: from) ?;
1619
Original file line number Diff line number Diff line change @@ -176,3 +176,9 @@ pub(crate) mod errors {
176176 BadClaim ( String ) ,
177177 }
178178}
179+
180+ pub mod provider {
181+ pub trait JwtIssuers {
182+ fn issuers ( & self ) -> & [ & ' static str ] ;
183+ }
184+ }
You can’t perform that action at this time.
0 commit comments