55
66# If ACTIONS_ID_TOKEN_REQUEST_URL is set, we are in GitHub Actions - skip interception
77if [ -n " ${ACTIONS_ID_TOKEN_REQUEST_URL} " ]; then
8- source " $( dirname $0 ) " /resolve-shim.sh
8+ source " $( dirname " $0 " ) " /resolve-shim.sh
99 AZ_EXE=" $( resolve_shim) "
1010 exec " ${AZ_EXE} " " $@ "
1111fi
1212
13- source " $( dirname $0 ) " /resolve-shim.sh
13+ source " $( dirname " $0 " ) " /resolve-shim.sh
1414
1515# Well-known resource type mappings (az account get-access-token --resource-type)
1616declare -A RESOURCE_TYPE_MAP=(
@@ -31,10 +31,17 @@ if [[ "$1" == "account" && "$2" == "get-access-token" ]]; then
3131 prev=" "
3232
3333 for arg in " ${@: 3} " ; do
34- case " $prev " in
35- --resource) resource=" $arg " ;;
36- --scope) scope=" $arg " ;;
37- --resource-type) resource_type=" $arg " ;;
34+ case " $arg " in
35+ --resource=* ) resource=" ${arg# --resource=} " ;;
36+ --scope=* ) scope=" ${arg# --scope=} " ;;
37+ --resource-type=* ) resource_type=" ${arg# --resource-type=} " ;;
38+ * )
39+ case " $prev " in
40+ --resource) resource=" $arg " ;;
41+ --scope) scope=" $arg " ;;
42+ --resource-type) resource_type=" $arg " ;;
43+ esac
44+ ;;
3845 esac
3946 prev=" $arg "
4047 done
@@ -60,6 +67,10 @@ if [[ "$1" == "account" && "$2" == "get-access-token" ]]; then
6067 if [[ -n " $request_scope " && -f " ${HOME} /azure-auth-helper" ]]; then
6168 token=$( " ${HOME} /azure-auth-helper" get-access-token " $request_scope " 2> /dev/null)
6269 if [[ $? -eq 0 && -n " $token " ]]; then
70+ # Escape token for safe JSON embedding (handle backslashes and quotes)
71+ escaped_token=" ${token// \\ / \\\\ } "
72+ escaped_token=" ${escaped_token// \" / \\\" } "
73+
6374 # Calculate expiry timestamps (conservative 1 hour estimate)
6475 # expires_on = POSIX timestamp, expiresOn = local datetime
6576 if date --version > /dev/null 2>&1 ; then
@@ -75,7 +86,7 @@ if [[ "$1" == "account" && "$2" == "get-access-token" ]]; then
7586 # Return in az CLI JSON format (matching real az CLI output)
7687 cat << EOF
7788{
78- "accessToken": "${token } ",
89+ "accessToken": "${escaped_token } ",
7990 "expiresOn": "${expires_on_datetime} ",
8091 "expires_on": ${expires_on} ,
8192 "subscription": "",
0 commit comments