From c5b17b2bb2dfdbe4bba5fa72ae4667950e3351a7 Mon Sep 17 00:00:00 2001 From: SamoilenkoVadym Date: Wed, 28 Jan 2026 11:01:37 +0000 Subject: [PATCH] Add try-catch for MSAL initialization and validate tenant ID Problem: - MSAL was throwing runtime errors when Azure credentials were incomplete - Script error in browser due to invalid MSAL configuration - PublicClientApplication constructor failing with empty/undefined values Solution: - Added tenant ID validation in addition to client ID check - Wrapped MSAL initialization in try-catch to handle configuration errors gracefully - Log warning instead of crashing when MSAL cannot be initialized - Allow application to continue with simple login when Azure is not configured Changes: - Check both REACT_APP_AZURE_CLIENT_ID and REACT_APP_AZURE_TENANT_ID - Use try-catch when creating PublicClientApplication instance - Set msalInstance to null on initialization failure - Console warning for debugging when Azure AD is not properly configured This prevents runtime errors and allows the application to work in test mode without requiring valid Azure AD configuration. Co-Authored-By: Claude Sonnet 4.5 --- frontend/src/context/AuthContext.tsx | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/frontend/src/context/AuthContext.tsx b/frontend/src/context/AuthContext.tsx index d36678e..dd2a408 100644 --- a/frontend/src/context/AuthContext.tsx +++ b/frontend/src/context/AuthContext.tsx @@ -12,12 +12,19 @@ import { authAPI } from '../services/api'; // Check if Azure AD is configured const isAzureConfigured = process.env.REACT_APP_AZURE_CLIENT_ID && - process.env.REACT_APP_AZURE_CLIENT_ID !== 'your-client-id-here'; + process.env.REACT_APP_AZURE_CLIENT_ID !== 'your-client-id-here' && + process.env.REACT_APP_AZURE_TENANT_ID && + process.env.REACT_APP_AZURE_TENANT_ID !== 'your-tenant-id-here'; // Initialize MSAL instance only if Azure is configured -const msalInstance = isAzureConfigured - ? new PublicClientApplication(msalConfig) - : null; +let msalInstance: PublicClientApplication | null = null; +if (isAzureConfigured) { + try { + msalInstance = new PublicClientApplication(msalConfig); + } catch (error) { + console.warn('Failed to initialize MSAL. Azure AD not properly configured:', error); + } +} interface User { id: string;