mirror of
https://github.com/lennart-k/rustical.git
synced 2025-12-14 14:02:29 +00:00
37 lines
1.1 KiB
Rust
37 lines
1.1 KiB
Rust
use actix_session::SessionInsertError;
|
|
use actix_web::{
|
|
HttpResponse, ResponseError, body::BoxBody, error::UrlGenerationError, http::StatusCode,
|
|
};
|
|
use openidconnect::{ClaimsVerificationError, ConfigurationError, url::ParseError};
|
|
|
|
#[derive(Debug, thiserror::Error)]
|
|
pub enum OidcError {
|
|
#[error("Cannot generate redirect url, something's not configured correctly")]
|
|
OidcParseError(#[from] ParseError),
|
|
|
|
#[error("Cannot generate redirect url, something's not configured correctly")]
|
|
ActixUrlGenerationError(#[from] UrlGenerationError),
|
|
|
|
#[error(transparent)]
|
|
OidcConfigurationError(#[from] ConfigurationError),
|
|
|
|
#[error(transparent)]
|
|
OidcClaimsVerificationError(#[from] ClaimsVerificationError),
|
|
|
|
#[error(transparent)]
|
|
SessionInsertError(#[from] SessionInsertError),
|
|
|
|
#[error("{0}")]
|
|
Other(&'static str),
|
|
}
|
|
|
|
impl ResponseError for OidcError {
|
|
fn status_code(&self) -> StatusCode {
|
|
StatusCode::INTERNAL_SERVER_ERROR
|
|
}
|
|
|
|
fn error_response(&self) -> HttpResponse<BoxBody> {
|
|
HttpResponse::build(self.status_code()).body(self.to_string())
|
|
}
|
|
}
|