@@ -80,10 +80,7 @@ pub async fn login(
8080 ) ) ;
8181 }
8282
83- let oidc_client = match OIDC_CLIENT . get ( ) {
84- Some ( c) => c. as_ref ( ) . cloned ( ) ,
85- None => None ,
86- } ;
83+ let oidc_client = OIDC_CLIENT . get ( ) ;
8784
8885 let session_key = extract_session_key_from_req ( & req) . ok ( ) ;
8986 let ( session_key, oidc_client) = match ( session_key, oidc_client) {
@@ -149,17 +146,23 @@ pub async fn login(
149146}
150147
151148pub async fn logout ( req : HttpRequest , query : web:: Query < RedirectAfterLogin > ) -> HttpResponse {
152- let oidc_client = match OIDC_CLIENT . get ( ) {
153- Some ( c) => Some ( c. as_ref ( ) . unwrap ( ) . read ( ) . await . client ( ) . clone ( ) ) ,
154- None => None ,
155- } ;
149+ let oidc_client = OIDC_CLIENT . get ( ) ;
156150
157151 let Some ( session) = extract_session_key_from_req ( & req) . ok ( ) else {
158152 return redirect_to_client ( query. redirect . as_str ( ) , None ) ;
159153 } ;
160154 let user = Users . remove_session ( & session) ;
161- let logout_endpoint =
162- oidc_client. and_then ( |client| client. config ( ) . end_session_endpoint . clone ( ) ) ;
155+ let logout_endpoint = if let Some ( client) = oidc_client {
156+ client
157+ . read ( )
158+ . await
159+ . client ( )
160+ . config ( )
161+ . end_session_endpoint
162+ . clone ( )
163+ } else {
164+ None
165+ } ;
163166
164167 match ( user, logout_endpoint) {
165168 ( Some ( username) , Some ( logout_endpoint) )
@@ -174,9 +177,7 @@ pub async fn logout(req: HttpRequest, query: web::Query<RedirectAfterLogin>) ->
174177/// Handler for code callback
175178/// User should be redirected to page they were trying to access with cookie
176179pub async fn reply_login ( login_query : web:: Query < Login > ) -> Result < HttpResponse , OIDCError > {
177- let oidc_client = if let Some ( oidc_client) = OIDC_CLIENT . get ( )
178- && let Some ( oidc_client) = oidc_client
179- {
180+ let oidc_client = if let Some ( oidc_client) = OIDC_CLIENT . get ( ) {
180181 oidc_client
181182 } else {
182183 return Err ( OIDCError :: Unauthorized ) ;
0 commit comments