Skip to content

Commit 3e78e44

Browse files
zecakehpoljar
authored andcommitted
refactor(sdk): Move oidc module to authentication::oidc
Signed-off-by: Kévin Commaille <[email protected]>
1 parent 02c2e55 commit 3e78e44

File tree

25 files changed

+44
-46
lines changed

25 files changed

+44
-46
lines changed

bindings/matrix-sdk-ffi/src/authentication.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use std::{
55
};
66

77
use matrix_sdk::{
8-
oidc::{
8+
authentication::oidc::{
99
registrations::OidcRegistrationsError,
1010
types::{
1111
iana::oauth::OAuthClientAuthenticationMethod,

bindings/matrix-sdk-ffi/src/client.rs

+9-9
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,7 @@ use std::{
77

88
use anyhow::{anyhow, Context as _};
99
use matrix_sdk::{
10-
media::{
11-
MediaFileHandle as SdkMediaFileHandle, MediaFormat, MediaRequestParameters,
12-
MediaThumbnailSettings,
13-
},
14-
oidc::{
10+
authentication::oidc::{
1511
registrations::{ClientId, OidcRegistrations},
1612
requests::account_management::AccountManagementActionFull,
1713
types::{
@@ -23,6 +19,10 @@ use matrix_sdk::{
2319
},
2420
OidcAuthorizationData, OidcSession,
2521
},
22+
media::{
23+
MediaFileHandle as SdkMediaFileHandle, MediaFormat, MediaRequestParameters,
24+
MediaThumbnailSettings,
25+
},
2626
reqwest::StatusCode,
2727
ruma::{
2828
api::client::{
@@ -1556,10 +1556,10 @@ impl Session {
15561556
}
15571557
// Build the session from the OIDC UserSession.
15581558
AuthApi::Oidc(api) => {
1559-
let matrix_sdk::oidc::UserSession {
1559+
let matrix_sdk::authentication::oidc::UserSession {
15601560
meta: matrix_sdk::SessionMeta { user_id, device_id },
15611561
tokens:
1562-
matrix_sdk::oidc::OidcSessionTokens {
1562+
matrix_sdk::authentication::oidc::OidcSessionTokens {
15631563
access_token,
15641564
refresh_token,
15651565
latest_id_token,
@@ -1620,12 +1620,12 @@ impl TryFrom<Session> for AuthSession {
16201620
.transpose()
16211621
.context("OIDC latest_id_token is invalid.")?;
16221622

1623-
let user_session = matrix_sdk::oidc::UserSession {
1623+
let user_session = matrix_sdk::authentication::oidc::UserSession {
16241624
meta: matrix_sdk::SessionMeta {
16251625
user_id: user_id.try_into()?,
16261626
device_id: device_id.into(),
16271627
},
1628-
tokens: matrix_sdk::oidc::OidcSessionTokens {
1628+
tokens: matrix_sdk::authentication::oidc::OidcSessionTokens {
16291629
access_token,
16301630
refresh_token,
16311631
latest_id_token,

bindings/matrix-sdk-ffi/src/error.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
use std::{collections::HashMap, fmt, fmt::Display};
22

33
use matrix_sdk::{
4-
encryption::CryptoStoreError, event_cache::EventCacheError, oidc::OidcError, reqwest,
5-
room::edit::EditError, send_queue::RoomSendQueueError, HttpError, IdParseError,
4+
authentication::oidc::OidcError, encryption::CryptoStoreError, event_cache::EventCacheError,
5+
reqwest, room::edit::EditError, send_queue::RoomSendQueueError, HttpError, IdParseError,
66
NotificationSettingsError as SdkNotificationSettingsError,
77
QueueWedgeError as SdkQueueWedgeError, StoreError,
88
};

crates/matrix-sdk/src/authentication/mod.rs

+3-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
//! Types and functions related to authentication in Matrix.
1616
1717
// TODO:(pixlwave) Move AuthenticationService from the FFI into this module.
18-
// TODO:(poljar) Move the oidc module under this module.
1918

2019
use std::sync::Arc;
2120

@@ -24,10 +23,12 @@ use matrix_sdk_base::SessionMeta;
2423
use tokio::sync::{broadcast, Mutex, OnceCell};
2524

2625
pub mod matrix;
26+
#[cfg(feature = "experimental-oidc")]
27+
pub mod oidc;
2728

2829
use self::matrix::{MatrixAuth, MatrixAuthData};
2930
#[cfg(feature = "experimental-oidc")]
30-
use crate::oidc::{self, Oidc, OidcAuthData, OidcCtx};
31+
use self::oidc::{Oidc, OidcAuthData, OidcCtx};
3132
use crate::{Client, RefreshTokenError, SessionChange};
3233

3334
#[cfg(all(feature = "experimental-oidc", feature = "e2e-encryption", not(target_arch = "wasm32")))]

crates/matrix-sdk/src/oidc/backend/mock.rs renamed to crates/matrix-sdk/src/authentication/oidc/backend/mock.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ use mas_oidc_client::{
3737
use url::Url;
3838

3939
use super::{OidcBackend, OidcError, RefreshedSessionTokens};
40-
use crate::oidc::{AuthorizationCode, OidcSessionTokens};
40+
use crate::authentication::oidc::{AuthorizationCode, OidcSessionTokens};
4141

4242
pub(crate) const ISSUER_URL: &str = "https://oidc.example.com/issuer";
4343
pub(crate) const AUTHORIZATION_URL: &str = "https://oidc.example.com/authorization";

crates/matrix-sdk/src/oidc/backend/server.rs renamed to crates/matrix-sdk/src/authentication/oidc/backend/server.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ use url::Url;
4242

4343
use super::{OidcBackend, OidcError, RefreshedSessionTokens};
4444
use crate::{
45-
oidc::{rng, AuthorizationCode, OidcSessionTokens},
45+
authentication::oidc::{rng, AuthorizationCode, OidcSessionTokens},
4646
Client,
4747
};
4848

crates/matrix-sdk/src/oidc/cross_process.rs renamed to crates/matrix-sdk/src/authentication/oidc/cross_process.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,7 @@ mod tests {
264264

265265
use super::compute_session_hash;
266266
use crate::{
267-
oidc::{
267+
authentication::oidc::{
268268
backend::mock::{MockImpl, ISSUER_URL},
269269
cross_process::SessionHash,
270270
tests,

crates/matrix-sdk/src/oidc/mod.rs renamed to crates/matrix-sdk/src/authentication/oidc/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -217,11 +217,11 @@ pub use self::{
217217
use self::{
218218
backend::{server::OidcServer, OidcBackend},
219219
cross_process::{CrossProcessRefreshLockGuard, CrossProcessRefreshManager},
220+
registrations::{ClientId, OidcRegistrations},
220221
};
221222
use crate::{
222223
authentication::{qrcode::LoginWithQrCode, AuthData},
223224
client::SessionChange,
224-
oidc::registrations::{ClientId, OidcRegistrations},
225225
Client, HttpError, RefreshTokenError, Result,
226226
};
227227

crates/matrix-sdk/src/oidc/tests.rs renamed to crates/matrix-sdk/src/authentication/oidc/tests.rs

+2-5
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,11 @@ use wiremock::{
2626

2727
use super::{
2828
backend::mock::{MockImpl, AUTHORIZATION_URL, ISSUER_URL},
29+
registrations::{ClientId, OidcRegistrations},
2930
AuthorizationCode, AuthorizationError, AuthorizationResponse, Oidc, OidcError, OidcSession,
3031
OidcSessionTokens, RedirectUriQueryParseError, UserSession,
3132
};
32-
use crate::{
33-
oidc::registrations::{ClientId, OidcRegistrations},
34-
test_utils::test_client_builder,
35-
Client, Error,
36-
};
33+
use crate::{test_utils::test_client_builder, Client, Error};
3734

3835
const CLIENT_ID: &str = "test_client_id";
3936
const REDIRECT_URI_STRING: &str = "http://matrix.example.com/oidc/callback";

crates/matrix-sdk/src/authentication/qrcode/login.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ use super::{
3434
SecureChannelError,
3535
};
3636
#[cfg(doc)]
37-
use crate::oidc::Oidc;
37+
use crate::authentication::oidc::Oidc;
3838
use crate::{
3939
authentication::qrcode::{
4040
messages::QrAuthMessage, secure_channel::EstablishedSecureChannel, QRCodeLoginError,

crates/matrix-sdk/src/authentication/qrcode/mod.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ use url::Url;
3333
pub use vodozemac::ecies::{Error as EciesError, MessageDecodeError};
3434

3535
#[cfg(doc)]
36-
use crate::oidc::Oidc;
37-
use crate::{oidc::CrossProcessRefreshLockError, HttpError};
36+
use crate::authentication::oidc::Oidc;
37+
use crate::{authentication::oidc::CrossProcessRefreshLockError, HttpError};
3838

3939
mod login;
4040
mod messages;
@@ -113,7 +113,7 @@ pub enum DeviceAuhorizationOidcError {
113113
/// A generic OIDC error happened while we were attempting to register the
114114
/// device with the OIDC provider.
115115
#[error(transparent)]
116-
Oidc(#[from] crate::oidc::OidcError),
116+
Oidc(#[from] crate::authentication::oidc::OidcError),
117117

118118
/// The issuer URL failed to be parsed.
119119
#[error(transparent)]

crates/matrix-sdk/src/authentication/qrcode/oidc_client.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ use openidconnect::{
3232
use vodozemac::Curve25519PublicKey;
3333

3434
use super::DeviceAuhorizationOidcError;
35-
use crate::{http_client::HttpClient, oidc::OidcSessionTokens};
35+
use crate::{authentication::oidc::OidcSessionTokens, http_client::HttpClient};
3636

3737
// Obtain the device_authorization_url from the OIDC metadata provider.
3838
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]

crates/matrix-sdk/src/client/builder/mod.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,14 @@ use tokio::sync::{broadcast, Mutex, OnceCell};
2828
use tracing::{debug, field::debug, instrument, Span};
2929

3030
use super::{Client, ClientInner};
31+
#[cfg(feature = "experimental-oidc")]
32+
use crate::authentication::oidc::OidcCtx;
3133
#[cfg(feature = "e2e-encryption")]
3234
use crate::crypto::{CollectStrategy, TrustRequirement};
3335
#[cfg(feature = "e2e-encryption")]
3436
use crate::encryption::EncryptionSettings;
3537
#[cfg(not(target_arch = "wasm32"))]
3638
use crate::http_client::HttpSettings;
37-
#[cfg(feature = "experimental-oidc")]
38-
use crate::oidc::OidcCtx;
3939
use crate::{
4040
authentication::AuthCtx, client::ClientServerCapabilities, config::RequestConfig,
4141
error::RumaApiError, http_client::HttpClient, send_queue::SendQueueData,

crates/matrix-sdk/src/client/futures.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ use tracing::trace;
3535

3636
use super::super::Client;
3737
#[cfg(feature = "experimental-oidc")]
38-
use crate::oidc::OidcError;
38+
use crate::authentication::oidc::OidcError;
3939
use crate::{
4040
config::RequestConfig,
4141
error::{HttpError, HttpResult},

crates/matrix-sdk/src/client/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ use url::Url;
7474

7575
use self::futures::SendRequest;
7676
#[cfg(feature = "experimental-oidc")]
77-
use crate::oidc::Oidc;
77+
use crate::authentication::oidc::Oidc;
7878
use crate::{
7979
authentication::{
8080
matrix::MatrixAuth, AuthCtx, AuthData, ReloadSessionCallback, SaveSessionCallback,

crates/matrix-sdk/src/error.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,7 @@ pub enum Error {
354354
/// An error occurred interacting with the OpenID Connect API.
355355
#[cfg(feature = "experimental-oidc")]
356356
#[error(transparent)]
357-
Oidc(#[from] crate::oidc::OidcError),
357+
Oidc(#[from] crate::authentication::oidc::OidcError),
358358

359359
/// A concurrent request to a deduplicated request has failed.
360360
#[error("a concurrent request failed; see logs for details")]
@@ -561,7 +561,7 @@ pub enum RefreshTokenError {
561561
/// An error occurred interacting with the OpenID Connect API.
562562
#[cfg(feature = "experimental-oidc")]
563563
#[error(transparent)]
564-
Oidc(#[from] Arc<crate::oidc::OidcError>),
564+
Oidc(#[from] Arc<crate::authentication::oidc::OidcError>),
565565
}
566566

567567
/// Errors that can occur when manipulating push notification settings.

crates/matrix-sdk/src/lib.rs

-2
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,6 @@ pub mod event_handler;
4747
mod http_client;
4848
pub mod media;
4949
pub mod notification_settings;
50-
#[cfg(feature = "experimental-oidc")]
51-
pub mod oidc;
5250
pub mod pusher;
5351
pub mod room;
5452
pub mod room_directory_search;

crates/matrix-sdk/tests/integration/encryption/cross_signing.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,8 @@ async fn test_reset_oidc() {
129129
registration::{ClientMetadata, VerifiedClientMetadata},
130130
};
131131
use matrix_sdk::{
132+
authentication::oidc::{OidcSession, OidcSessionTokens, UserSession},
132133
encryption::CrossSigningResetAuthType,
133-
oidc::{OidcSession, OidcSessionTokens, UserSession},
134134
};
135135
use similar_asserts::assert_eq;
136136
use url::Url;

examples/oidc_cli/src/main.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,7 @@ use axum::{
3030
};
3131
use futures_util::StreamExt;
3232
use matrix_sdk::{
33-
config::SyncSettings,
34-
encryption::{recovery::RecoveryState, CrossSigningResetAuthType},
35-
oidc::{
33+
authentication::oidc::{
3634
requests::account_management::AccountManagementActionFull,
3735
types::{
3836
client_credentials::ClientCredentials,
@@ -44,6 +42,8 @@ use matrix_sdk::{
4442
},
4543
AuthorizationCode, AuthorizationResponse, OidcAuthorizationData, OidcSession, UserSession,
4644
},
45+
config::SyncSettings,
46+
encryption::{recovery::RecoveryState, CrossSigningResetAuthType},
4747
room::Room,
4848
ruma::events::room::message::{MessageType, OriginalSyncRoomMessageEvent},
4949
Client, ClientBuildError, Result, RoomState,

examples/qr-login/src/main.rs

+8-6
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,14 @@ use anyhow::{bail, Context, Result};
44
use clap::Parser;
55
use futures_util::StreamExt;
66
use matrix_sdk::{
7-
authentication::qrcode::{LoginProgress, QrCodeData, QrCodeModeData},
8-
oidc::types::{
9-
iana::oauth::OAuthClientAuthenticationMethod,
10-
oidc::ApplicationType,
11-
registration::{ClientMetadata, Localized, VerifiedClientMetadata},
12-
requests::GrantType,
7+
authentication::{
8+
oidc::types::{
9+
iana::oauth::OAuthClientAuthenticationMethod,
10+
oidc::ApplicationType,
11+
registration::{ClientMetadata, Localized, VerifiedClientMetadata},
12+
requests::GrantType,
13+
},
14+
qrcode::{LoginProgress, QrCodeData, QrCodeModeData},
1315
},
1416
Client,
1517
};

0 commit comments

Comments
 (0)