2025-12-04 23:50:47 [INFO] Found MAS client credentials.
我有看到其他同學提出相同的問題,您回覆說「會停在這一步應該是因為拿 access token 的時候失敗了」,所以我也照這個方向檢查了一下。我撰寫了一個檢查的腳本,結果如附圖。
可以確認狀況如下
1.在 /etc/environment 中有設定 MAS 的環境變數
2.在 VM 內用 getent hosts 檢查 mas.112550039.cs.nycu 也有正常解析
接著我在 VM 內,用同一組 SA_MAS_CLIENT_ID / SA_MAS_CLIENT_SECRET 呼叫 MAS 的 token endpoint,實際執行的結果如下
==== Call MAS token endpoint ====
[INFO] Token endpoint URL =
https://mas.112550039.cs.nycu/oauth2/token[INFO] Using client_credentials flow with scope 'urn:mas:admin'.
[INFO] HTTP status code from /oauth2/token = 502
[INFO] Response body (first 300 bytes):
[BODY] (目前是空的,沒有 JSON)
也就是說,從 VM 自己用這組 client credentials 去打
https://mas.112550039.cs.nycu/oauth2/token,會拿到 Caddy 回的 502,完全沒有 access token,所以我猜測 OJ 在這一步也遇到相同的錯誤,才會只印出 Found MAS client credentials. 就停住。
想請問助教
1.目前從我自己的測試看起來,token endpoint 一定會回 502。這樣的狀況是不是代表我的 MAS container 或 Caddy 的反向代理,一定有哪一個設定是錯的?
2.OJ 是不是就是用
https://mas.{ID}.cs.nycu/oauth2/token 搭配 grant_type=client_credentials、scope=urn:mas:admin 來拿 admin token?
3.能否請助教幫忙指點:在這個測試中,MAS 端最重要需要確認的設定是哪些,或我應該優先檢查哪幾個地方?
謝謝助教的協助。