Skip to content

Commit 81b782f

Browse files
[autofix.ci] apply automated fixes
1 parent 621999f commit 81b782f

File tree

5 files changed

+52
-60
lines changed

5 files changed

+52
-60
lines changed

ee/tabby-webserver/src/oauth/general.rs

Lines changed: 34 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,17 @@
1-
use std::sync::{Arc, LazyLock, Mutex};
1+
use std::{
2+
collections::HashMap,
3+
sync::{Arc, LazyLock, Mutex},
4+
};
25

3-
use anyhow::anyhow;
4-
use anyhow::Result;
6+
use anyhow::{anyhow, Result};
57
use async_trait::async_trait;
68
use cached::{proc_macro::cached, TimedCache};
79
use openidconnect::{
8-
AccessTokenHash,
9-
AuthorizationCode,
10-
CsrfToken,
11-
ClientId,
12-
ClientSecret,
13-
IssuerUrl,
14-
Nonce,
15-
OAuth2TokenResponse,
16-
PkceCodeChallenge,
17-
PkceCodeVerifier,
18-
RedirectUrl,
19-
TokenResponse,
20-
};
21-
use openidconnect::core::{
22-
CoreAuthenticationFlow,
23-
CoreClient,
24-
CoreProviderMetadata,
25-
CoreUserInfoClaims,
10+
core::{CoreAuthenticationFlow, CoreClient, CoreProviderMetadata, CoreUserInfoClaims},
11+
AccessTokenHash, AuthorizationCode, ClientId, ClientSecret, CsrfToken, IssuerUrl, Nonce,
12+
OAuth2TokenResponse, PkceCodeChallenge, PkceCodeVerifier, RedirectUrl, TokenResponse,
2613
};
2714
use serde::Deserialize;
28-
use std::collections::HashMap;
2915
use tabby_schema::auth::{AuthenticationService, OAuthCredential, OAuthProvider};
3016

3117
use super::OAuthClient;
@@ -42,9 +28,8 @@ pub struct OAuthRequest {
4228
pub pkce_verifier: String,
4329
}
4430

45-
static AUTH_REQS: LazyLock<Mutex<HashMap<String, OAuthRequest>>> = LazyLock::new(|| {
46-
Mutex::new(HashMap::new())
47-
});
31+
static AUTH_REQS: LazyLock<Mutex<HashMap<String, OAuthRequest>>> =
32+
LazyLock::new(|| Mutex::new(HashMap::new()));
4833

4934
impl GeneralClient {
5035
pub fn new(auth: Arc<dyn AuthenticationService>) -> Self {
@@ -65,7 +50,7 @@ impl GeneralClient {
6550
}
6651
}
6752

68-
async fn retrieve_provider_metadata( &self, config_url: String) -> Option<CoreProviderMetadata> {
53+
async fn retrieve_provider_metadata(&self, config_url: String) -> Option<CoreProviderMetadata> {
6954
retrieve_provider_metadata(config_url).await
7055
}
7156
}
@@ -98,14 +83,15 @@ impl OAuthClient for GeneralClient {
9883

9984
let client = reqwest::Client::new();
10085
let pkce_verifier = PkceCodeVerifier::new(auth_req.pkce_verifier.clone());
101-
let token_response = oidc_client.exchange_code(AuthorizationCode::new(code))?
86+
let token_response = oidc_client
87+
.exchange_code(AuthorizationCode::new(code))?
10288
.set_pkce_verifier(pkce_verifier)
10389
.request_async(&client)
10490
.await?;
10591

10692
let id_token = token_response
107-
.id_token()
108-
.ok_or_else(|| anyhow!("Invalid authentication token"))?;
93+
.id_token()
94+
.ok_or_else(|| anyhow!("Invalid authentication token"))?;
10995

11096
let id_token_verifier = oidc_client.id_token_verifier();
11197
let nonce = Nonce::new(auth_req.nonce.clone());
@@ -118,31 +104,29 @@ impl OAuthClient for GeneralClient {
118104
id_token.signing_key(&id_token_verifier)?,
119105
)?;
120106
if actual_access_token_hash != *expected_access_token_hash {
121-
bail!("Invalid access token");
107+
bail!("Invalid access token");
122108
}
123109
}
124110

125111
let access_token = token_response.access_token().secret().to_string();
126112

127113
// Get User info
128-
let user_info_response = oidc_client.user_info(token_response.access_token().to_owned(), None)?
129-
.request_async(&client).await;
114+
let user_info_response = oidc_client
115+
.user_info(token_response.access_token().to_owned(), None)?
116+
.request_async(&client)
117+
.await;
130118

131119
let mut user_info = self.user_info.lock().unwrap();
132-
*user_info = match user_info_response {
133-
Ok(user_info) => Some(user_info),
134-
Err(_err) => None,
135-
};
120+
*user_info = user_info_response.ok();
136121

137122
Ok(access_token)
138123
}
139124

140125
async fn fetch_user_email(&self, _access_token: &str) -> Result<String> {
141126
let user_info = self.user_info.lock().unwrap();
142127
match &*user_info {
143-
Some(user_info) =>{
144-
let end_user_email = user_info.email().unwrap()
145-
.to_owned();
128+
Some(user_info) => {
129+
let end_user_email = user_info.email().unwrap().to_owned();
146130
let email = end_user_email.to_string();
147131
Ok(email)
148132
}
@@ -154,8 +138,7 @@ impl OAuthClient for GeneralClient {
154138
let user_info = self.user_info.lock().unwrap();
155139
match &*user_info {
156140
Some(user_info) => {
157-
let end_user_full_name = user_info.name().unwrap()
158-
.to_owned();
141+
let end_user_full_name = user_info.name().unwrap().to_owned();
159142
let full_name = end_user_full_name.get(None).unwrap().to_string();
160143
Ok(full_name)
161144
}
@@ -171,16 +154,16 @@ impl OAuthClient for GeneralClient {
171154
};
172155
let provider_metadata = self.retrieve_provider_metadata(config_url).await.unwrap();
173156

174-
let redirect_uri = RedirectUrl::new(
175-
self.auth.oauth_callback_url(OAuthProvider::General).await?
176-
)?;
157+
let redirect_uri =
158+
RedirectUrl::new(self.auth.oauth_callback_url(OAuthProvider::General).await?)?;
177159
let scopes_supported = provider_metadata.scopes_supported().unwrap().clone();
178160

179161
let oidc_client = CoreClient::from_provider_metadata(
180162
provider_metadata,
181163
ClientId::new(credential.client_id),
182164
Some(ClientSecret::new(credential.client_secret)),
183-
).set_redirect_uri(redirect_uri);
165+
)
166+
.set_redirect_uri(redirect_uri);
184167

185168
let (pkce_challenge, pkce_verifier) = PkceCodeChallenge::new_random_sha256();
186169

@@ -203,7 +186,7 @@ impl OAuthClient for GeneralClient {
203186
let (auth_uri, csrf_token, nonce) = authorization_request.url();
204187
let auth_req = OAuthRequest {
205188
nonce: nonce.secret().clone(),
206-
pkce_verifier: pkce_verifier.into_secret()
189+
pkce_verifier: pkce_verifier.into_secret(),
207190
};
208191

209192
let mut auth_reqs = AUTH_REQS.lock().unwrap();
@@ -213,20 +196,15 @@ impl OAuthClient for GeneralClient {
213196
}
214197
}
215198

216-
217199
#[cached(
218200
type = "TimedCache<String, Option<CoreProviderMetadata>>",
219201
create = "{ TimedCache::with_lifespan(3600 * 12) }"
220202
)]
221203
async fn retrieve_provider_metadata(config_url: String) -> Option<CoreProviderMetadata> {
222204
let client = reqwest::Client::new();
223-
let provider_metadata = CoreProviderMetadata::discover_async(
224-
IssuerUrl::new(config_url).ok().unwrap(),
225-
&client,
226-
).await;
227-
228-
match provider_metadata {
229-
Ok(provider_metadata) => Some(provider_metadata),
230-
Err(_) => None,
231-
}
205+
let provider_metadata =
206+
CoreProviderMetadata::discover_async(IssuerUrl::new(config_url).ok().unwrap(), &client)
207+
.await;
208+
209+
provider_metadata.ok()
232210
}

ee/tabby-webserver/src/oauth/github.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,11 @@ impl GithubClient {
9393

9494
#[async_trait]
9595
impl OAuthClient for GithubClient {
96-
async fn exchange_code_for_token(&self, code: String, _state: Option<String>) -> Result<String> {
96+
async fn exchange_code_for_token(
97+
&self,
98+
code: String,
99+
_state: Option<String>,
100+
) -> Result<String> {
97101
let credentials = self.read_credential().await?;
98102
let token_resp = self.exchange_access_token(code, credentials).await?;
99103
if !token_resp.error.is_empty() {

ee/tabby-webserver/src/oauth/gitlab.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,11 @@ impl GitlabClient {
9797

9898
#[async_trait]
9999
impl OAuthClient for GitlabClient {
100-
async fn exchange_code_for_token(&self, code: String, _state: Option<String>) -> Result<String> {
100+
async fn exchange_code_for_token(
101+
&self,
102+
code: String,
103+
_state: Option<String>,
104+
) -> Result<String> {
101105
let credentials = self.read_credential().await?;
102106
let redirect_uri = self.auth.oauth_callback_url(OAuthProvider::Gitlab).await?;
103107
let token_resp = self

ee/tabby-webserver/src/oauth/google.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,11 @@ impl GoogleClient {
9898

9999
#[async_trait]
100100
impl OAuthClient for GoogleClient {
101-
async fn exchange_code_for_token(&self, code: String, _state: Option<String>) -> Result<String> {
101+
async fn exchange_code_for_token(
102+
&self,
103+
code: String,
104+
_state: Option<String>,
105+
) -> Result<String> {
102106
let credential = self.read_credential().await?;
103107
let redirect_uri = self.auth.oauth_callback_url(OAuthProvider::Google).await?;
104108
let token_resp = self

ee/tabby-webserver/src/routes/oauth.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,9 @@ async fn general_oauth_handler(
137137
) -> Redirect {
138138
match_auth_result(
139139
OAuthProvider::General,
140-
state.oauth(param.code, param.state, OAuthProvider::General).await,
140+
state
141+
.oauth(param.code, param.state, OAuthProvider::General)
142+
.await,
141143
)
142144
}
143145

0 commit comments

Comments
 (0)