Files
nextgenpdf/test_oauth_config.py
T
2025-11-06 15:45:59 -05:00

80 lines
2.8 KiB
Python

#!/usr/bin/env python3
"""
Test script to verify Microsoft Entra ID OAuth configuration
Run this to check if your OAuth settings are correct before deploying.
"""
import os
import requests
from authlib.integrations.requests_client import OAuth2Session
def test_oauth_config():
# Get configuration from environment
tenant_id = os.getenv('TENANT_ID')
client_id = os.getenv('CLIENT_ID')
client_secret = os.getenv('CLIENT_SECRET')
print("Testing Microsoft Entra ID OAuth Configuration")
print("=" * 50)
print(f"TENANT_ID: {tenant_id}")
print(f"CLIENT_ID: {client_id}")
print(f"CLIENT_SECRET: {'*' * len(client_secret) if client_secret else 'None'}")
print()
if not all([tenant_id, client_id, client_secret]):
print("❌ ERROR: Missing required environment variables!")
print("Make sure TENANT_ID, CLIENT_ID, and CLIENT_SECRET are set.")
return False
if tenant_id in ['your-tenant-id', 'YOUR_MICROSOFT_ENTRA_TENANT_ID']:
print("❌ ERROR: TENANT_ID is still set to default placeholder value!")
return False
if client_id in ['your-client-id', 'YOUR_MICROSOFT_ENTRA_CLIENT_ID']:
print("❌ ERROR: CLIENT_ID is still set to default placeholder value!")
return False
if client_secret in ['your-client-secret', 'YOUR_MICROSOFT_ENTRA_CLIENT_SECRET']:
print("❌ ERROR: CLIENT_SECRET is still set to default placeholder value!")
return False
# Test metadata URL
metadata_url = f'https://login.microsoftonline.com/{tenant_id}/v2.0/.well-known/openid_configuration'
print(f"Testing metadata URL: {metadata_url}")
try:
response = requests.get(metadata_url, timeout=10)
if response.status_code == 200:
print("✅ Metadata URL is accessible")
else:
print(f"❌ Metadata URL returned status {response.status_code}")
return False
except Exception as e:
print(f"❌ Error accessing metadata URL: {e}")
return False
# Test OAuth client creation
try:
client = OAuth2Session(
client_id=client_id,
client_secret=client_secret,
scope=['openid', 'email', 'profile']
)
print("✅ OAuth client created successfully")
except Exception as e:
print(f"❌ Error creating OAuth client: {e}")
return False
print()
print("🎉 OAuth configuration appears to be correct!")
print()
print("Next steps:")
print("1. Make sure your redirect URI is registered in Microsoft Entra:")
print(" https://yourdomain.com/auth")
print("2. Restart the application: sudo systemctl restart pdf-renamer")
print("3. Check the application logs for any remaining issues")
return True
if __name__ == '__main__':
test_oauth_config()