You've already forked authentication-service
mirror of
https://github.com/matrix-org/matrix-authentication-service.git
synced 2025-07-31 09:24:31 +03:00
Parse User Agents on the backend side (#2388)
* Parse user agents on the server side * Parse and expose user agents on the backend * Use the parsed user agent in the device consent page * Fix the device icon tests * Fix clippy warnings * Box stuff to avoid large enum variants * Ignore a clippy warning * Fix the requester boxing
This commit is contained in:
@ -16,7 +16,7 @@ use std::net::IpAddr;
|
||||
|
||||
use async_trait::async_trait;
|
||||
use chrono::{DateTime, Utc};
|
||||
use mas_data_model::{BrowserSession, CompatSession, CompatSsoLogin, Device, User};
|
||||
use mas_data_model::{BrowserSession, CompatSession, CompatSsoLogin, Device, User, UserAgent};
|
||||
use rand_core::RngCore;
|
||||
use ulid::Ulid;
|
||||
|
||||
@ -266,7 +266,7 @@ pub trait CompatSessionRepository: Send + Sync {
|
||||
async fn record_user_agent(
|
||||
&mut self,
|
||||
compat_session: CompatSession,
|
||||
user_agent: String,
|
||||
user_agent: UserAgent,
|
||||
) -> Result<CompatSession, Self::Error>;
|
||||
}
|
||||
|
||||
@ -305,6 +305,6 @@ repository_impl!(CompatSessionRepository:
|
||||
async fn record_user_agent(
|
||||
&mut self,
|
||||
compat_session: CompatSession,
|
||||
user_agent: String,
|
||||
user_agent: UserAgent,
|
||||
) -> Result<CompatSession, Self::Error>;
|
||||
);
|
||||
|
@ -16,7 +16,7 @@ use std::net::IpAddr;
|
||||
|
||||
use async_trait::async_trait;
|
||||
use chrono::Duration;
|
||||
use mas_data_model::{BrowserSession, Client, DeviceCodeGrant, Session};
|
||||
use mas_data_model::{BrowserSession, Client, DeviceCodeGrant, Session, UserAgent};
|
||||
use oauth2_types::scope::Scope;
|
||||
use rand_core::RngCore;
|
||||
use ulid::Ulid;
|
||||
@ -44,7 +44,7 @@ pub struct OAuth2DeviceCodeGrantParams<'a> {
|
||||
pub ip_address: Option<IpAddr>,
|
||||
|
||||
/// The user agent from which the request was made
|
||||
pub user_agent: Option<String>,
|
||||
pub user_agent: Option<UserAgent>,
|
||||
}
|
||||
|
||||
/// An [`OAuth2DeviceCodeGrantRepository`] helps interacting with
|
||||
|
@ -16,7 +16,7 @@ use std::net::IpAddr;
|
||||
|
||||
use async_trait::async_trait;
|
||||
use chrono::{DateTime, Utc};
|
||||
use mas_data_model::{BrowserSession, Client, Session, User};
|
||||
use mas_data_model::{BrowserSession, Client, Session, User, UserAgent};
|
||||
use oauth2_types::scope::Scope;
|
||||
use rand_core::RngCore;
|
||||
use ulid::Ulid;
|
||||
@ -296,7 +296,7 @@ pub trait OAuth2SessionRepository: Send + Sync {
|
||||
async fn record_user_agent(
|
||||
&mut self,
|
||||
session: Session,
|
||||
user_agent: String,
|
||||
user_agent: UserAgent,
|
||||
) -> Result<Session, Self::Error>;
|
||||
}
|
||||
|
||||
@ -349,6 +349,6 @@ repository_impl!(OAuth2SessionRepository:
|
||||
async fn record_user_agent(
|
||||
&mut self,
|
||||
session: Session,
|
||||
user_agent: String,
|
||||
user_agent: UserAgent,
|
||||
) -> Result<Session, Self::Error>;
|
||||
);
|
||||
|
@ -17,7 +17,7 @@ use std::net::IpAddr;
|
||||
use async_trait::async_trait;
|
||||
use chrono::{DateTime, Utc};
|
||||
use mas_data_model::{
|
||||
Authentication, BrowserSession, Password, UpstreamOAuthAuthorizationSession, User,
|
||||
Authentication, BrowserSession, Password, UpstreamOAuthAuthorizationSession, User, UserAgent,
|
||||
};
|
||||
use rand_core::RngCore;
|
||||
use ulid::Ulid;
|
||||
@ -127,7 +127,7 @@ pub trait BrowserSessionRepository: Send + Sync {
|
||||
rng: &mut (dyn RngCore + Send),
|
||||
clock: &dyn Clock,
|
||||
user: &User,
|
||||
user_agent: Option<String>,
|
||||
user_agent: Option<UserAgent>,
|
||||
) -> Result<BrowserSession, Self::Error>;
|
||||
|
||||
/// Finish a [`BrowserSession`]
|
||||
@ -254,7 +254,7 @@ repository_impl!(BrowserSessionRepository:
|
||||
rng: &mut (dyn RngCore + Send),
|
||||
clock: &dyn Clock,
|
||||
user: &User,
|
||||
user_agent: Option<String>,
|
||||
user_agent: Option<UserAgent>,
|
||||
) -> Result<BrowserSession, Self::Error>;
|
||||
async fn finish(
|
||||
&mut self,
|
||||
|
Reference in New Issue
Block a user