From 58f91c62065d9a7e37c953503100b87b506297e7 Mon Sep 17 00:00:00 2001 From: Kjetil Orbekk Date: Fri, 14 Oct 2022 19:07:14 -0400 Subject: Automatically log in again when token refresh fails --- server/src/error.rs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'server/src/error.rs') diff --git a/server/src/error.rs b/server/src/error.rs index aef2687..9d82a54 100644 --- a/server/src/error.rs +++ b/server/src/error.rs @@ -1,4 +1,7 @@ -use axum::{http::{StatusCode, self}, response::IntoResponse}; +use axum::{ + http::{self, StatusCode}, + response::IntoResponse, +}; use openidconnect::{core::CoreErrorResponseType, ClaimsVerificationError, StandardErrorResponse}; use tracing::error; @@ -47,13 +50,18 @@ pub enum BridgeError { impl BridgeError { pub fn as_rejection(&self) -> (http::StatusCode, String) { - (StatusCode::INTERNAL_SERVER_ERROR, format!("Error: {self}")) + match self { + BridgeError::OpenidRequestTokenError(_) => { + (StatusCode::UNAUTHORIZED, format!("Error fetching token")) + } + _ => (StatusCode::INTERNAL_SERVER_ERROR, format!("Error: {self}")), + } } } impl IntoResponse for BridgeError { fn into_response(self) -> axum::response::Response { error!("Error occurred: {self:?}"); - self.as_rejection().into_response() + self.as_rejection().into_response() } } -- cgit v1.2.3