mod.rs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. use axum::response::{IntoResponse, Response, Result};
  2. use axum::routing::get;
  3. use axum::{Json, Router};
  4. use cdk::oidc_client::OidcConfig;
  5. use jsonwebtoken::jwk::{AlgorithmParameters, Jwk, JwkSet};
  6. use serde_json::{json, Value};
  7. async fn crate_mock_oauth() -> Router {
  8. let router = Router::new()
  9. .route("/config", get(handler_get_config))
  10. .route("/token", get(handler_get_token))
  11. .route("/jwks", get(handler_get_jwkset));
  12. router
  13. }
  14. async fn handler_get_config() -> Result<Json<OidcConfig>> {
  15. Ok(Json(OidcConfig {
  16. jwks_uri: "/jwks".to_string(),
  17. issuer: "127.0.0.1".to_string(),
  18. token_endpoint: "/token".to_string(),
  19. }))
  20. }
  21. async fn handler_get_jwkset() -> Result<Json<JwkSet>> {
  22. let jwk:Jwk = serde_json::from_value(json!({
  23. "kty": "RSA",
  24. "n": "yRE6rHuNR0QbHO3H3Kt2pOKGVhQqGZXInOduQNxXzuKlvQTLUTv4l4sggh5_CYYi_cvI-SXVT9kPWSKXxJXBXd_4LkvcPuUakBoAkfh-eiFVMh2VrUyWyj3MFl0HTVF9KwRXLAcwkREiS3npThHRyIxuy0ZMeZfxVL5arMhw1SRELB8HoGfG_AtH89BIE9jDBHZ9dLelK9a184zAf8LwoPLxvJb3Il5nncqPcSfKDDodMFBIMc4lQzDKL5gvmiXLXB1AGLm8KBjfE8s3L5xqi-yUod-j8MtvIj812dkS4QMiRVN_by2h3ZY8LYVGrqZXZTcgn2ujn8uKjXLZVD5TdQ",
  25. "e": "AQAB",
  26. "kid": "rsa01",
  27. "alg": "RS256",
  28. "use": "sig"
  29. })).unwrap();
  30. Ok(Json(JwkSet { keys: vec![jwk] }))
  31. }
  32. async fn handler_get_token() -> Result<Json<Value>> {
  33. Ok(Json(json!({"access_token": ""})))
  34. }