#!/usr/bin/env python3
"""
PAM 인증 스크립트
임시 SSH 비밀번호 검증용
"""
import sys
import requests
import os

# VConnect API 서버 주소
API_URL = os.getenv("VCONNECT_API_URL", "http://localhost:8000")

def verify_password(username, password):
    """
    임시 SSH 비밀번호 검증
    
    Args:
        username: 사용자명
        password: 비밀번호
        
    Returns:
        True if valid, False otherwise
    """
    try:
        # API 서버에 비밀번호 검증 요청
        response = requests.post(
            f"{API_URL}/api/ssh/verify",
            json={"username": username, "password": password},
            timeout=5
        )
        return response.status_code == 200
    except Exception as e:
        print(f"Error: {e}", file=sys.stderr)
        return False

if __name__ == "__main__":
    # PAM에서 사용자명은 환경 변수로, 비밀번호는 stdin으로 받음
    username = os.getenv("PAM_USER")
    if not username and len(sys.argv) > 1:
        username = sys.argv[1]
    
    # stdin에서 비밀번호 읽기 (PAM이 제공)
    try:
        password = sys.stdin.readline().strip()
    except:
        password = ""
    
    if not username or not password:
        sys.exit(1)
    
    if verify_password(username, password):
        sys.exit(0)  # 성공
    else:
        sys.exit(1)  # 실패
