Upgrade dependencies

This commit is contained in:
Adrian Kumpf
2025-04-10 17:16:26 +02:00
parent 0e07543bc2
commit 205fb63893
3 changed files with 609 additions and 844 deletions
Generated
+568 -815
View File
File diff suppressed because it is too large Load Diff
+9 -9
View File
@@ -13,22 +13,22 @@ license = "MIT OR Apache-2.0"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
anyhow = "1.0.95"
anyhow = "1.0.97"
argh = "0.1.13"
log = "0.4.22"
muda = "0.15.3"
oauth2 = "4.4.2"
reqwest = { version = "0.12.11", default-features = false, features = [
log = "0.4.27"
muda = "0.16.1"
oauth2 = { version = "5.0.0", features = ["reqwest-blocking" ] }
reqwest = { version = "0.12.15", default-features = false, features = [
"json",
"rustls-tls",
] }
serde = { version = "1.0.217", default-features = false, features = ["derive"] }
serde_json = "1.0.134"
serde = { version = "1.0.219", default-features = false, features = ["derive"] }
serde_json = "1.0.140"
simple_logger = { version = "5.0.0", default-features = false, features = [
"stderr",
] }
tao = { version = "0.31", default-features = false, features = ["rwh_06"] }
wry = { version = "0.47.2", features = ["devtools"] }
tao = { version = "0.33", default-features = false, features = ["rwh_06"] }
wry = { version = "0.51.0", features = ["devtools"] }
[build-dependencies]
static_vcruntime = "2.0.0"
+32 -20
View File
@@ -5,13 +5,14 @@ use std::time::Duration;
use anyhow::anyhow;
use oauth2::basic::BasicClient;
use oauth2::reqwest::http_client;
use oauth2::reqwest;
use oauth2::url::{Host, Url};
use oauth2::{
AccessToken, AuthType, AuthUrl, AuthorizationCode, ClientId, CsrfToken, ExtraTokenFields,
PkceCodeChallenge, PkceCodeVerifier, RedirectUrl, RefreshToken, Scope, StandardTokenResponse,
TokenResponse, TokenType, TokenUrl,
};
use oauth2::{EndpointNotSet, EndpointSet};
use crate::htime;
@@ -58,31 +59,37 @@ impl fmt::Display for Tokens {
pub struct Client {
auth_url: Url,
oauth_client: BasicClient,
oauth_client_cn: BasicClient,
oauth_client:
BasicClient<EndpointSet, EndpointNotSet, EndpointNotSet, EndpointNotSet, EndpointSet>,
oauth_client_cn:
BasicClient<EndpointSet, EndpointNotSet, EndpointNotSet, EndpointNotSet, EndpointSet>,
pkce_verifier: PkceCodeVerifier,
csrf_token: CsrfToken,
}
impl Client {
pub fn new() -> Client {
let oauth_client = BasicClient::new(
ClientId::new(CLIENT_ID.to_string()),
None,
AuthUrl::new(AUTH_URL.to_string()).unwrap(),
Some(TokenUrl::new(TOKEN_URL.to_string()).unwrap()),
)
.set_auth_type(AuthType::RequestBody)
.set_redirect_uri(RedirectUrl::new(REDIRECT_URL.to_string()).unwrap());
let auth_url =
AuthUrl::new(AUTH_URL.to_string()).expect("Invalid authorization endpoint URL");
let redirect_url =
RedirectUrl::new(REDIRECT_URL.to_string()).expect("Invalid redirect URL");
let oauth_client_cn = BasicClient::new(
ClientId::new(CLIENT_ID.to_string()),
None,
AuthUrl::new(AUTH_URL.to_string()).unwrap(),
Some(TokenUrl::new(TOKEN_URL_CN.to_string()).unwrap()),
)
.set_auth_type(AuthType::RequestBody)
.set_redirect_uri(RedirectUrl::new(REDIRECT_URL.to_string()).unwrap());
let token_url = TokenUrl::new(TOKEN_URL.to_string()).expect("Invalid token endpoint URL");
let token_url_cn =
TokenUrl::new(TOKEN_URL_CN.to_string()).expect("Invalid token endpoint URL");
let oauth_client = BasicClient::new(ClientId::new(CLIENT_ID.to_string()))
.set_auth_type(AuthType::RequestBody)
.set_redirect_uri(redirect_url.clone())
.set_auth_uri(auth_url.clone())
.set_token_uri(token_url.clone());
let oauth_client_cn = BasicClient::new(ClientId::new(CLIENT_ID.to_string()))
.set_auth_type(AuthType::RequestBody)
.set_redirect_uri(redirect_url)
.set_auth_uri(auth_url)
.set_token_uri(token_url_cn);
let (pkce_challenge, pkce_verifier) = PkceCodeChallenge::new_random_sha256();
@@ -117,10 +124,15 @@ impl Client {
_global => self.oauth_client,
};
let http_client = reqwest::blocking::ClientBuilder::new()
.redirect(reqwest::redirect::Policy::none())
.build()
.expect("Client should build");
let sso_token: SsoToken = client
.exchange_code(AuthorizationCode::new(code.to_string()))
.set_pkce_verifier(self.pkce_verifier)
.request(http_client)?
.request(&http_client)?
.try_into()?;
let tokens = Tokens {