对 Bamboo 错误的 powershell 身份验证
powershell authentication to Bamboo error
我在更新发布标签以显示它是否损坏或已批准等时遇到问题。我已经通过邮递员完成了这项工作,所以我知道问题不在于此。我正在使用基本身份验证,输入我的用户名和密码,并尝试使用它们的详细信息访问 uri,但对于 powershell,它不起作用。它适用于 Postman,因此它不是凭据。这是我正在做的事情:
$user = Read-Host -Prompt "Enter Bamboo Username"
$pass = Read-Host -Prompt "Enter password" -AsSecureString
$secpass = ConvertTo-SecureString $user -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential($pass,$secpass)
$baseuri = "http://bamboo.uk.myNetwork.net/rest/api/latest/deploy/version/VersionNumber/status/Approved"
$Headers = @{
'X-Atlassian-Token' = 'nochecK'
};
$json = "application/json"
Invoke-RestMethod -Uri $baseuri -Method Post -Credential $credential -Headers $Headers -ContentType $json
这不起作用,我收到 401 客户端必须经过身份验证才能访问此资源。我还尝试了以下所有方法来验证用户,但 none 有效:
<#
$encoded = [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($user+":"+$pass))
$EncodedUsernamePassword = [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($('{0}:{1}' -f $Credential.UserName, $Credential.GetNetworkCredential().Password)))
$pair = "$($user):$($pass)"
$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($pair))
$basicAuthValue = "Basic $encodedCreds"
#>
邮递员 return 以下详细信息:
{
"id": theID,
"userName": "myUserName",
"displayName": "myName",
"creationDate": 1481536833693,
"versionState": "APPROVED"
}
这表明具有基本身份验证并添加 X-Atlassian-Token:nocheck 的 uri 有效,但对于 powershell,我收到身份验证错误这是为什么?
问题是当我将密码用作 SecureString 类型时,当我只更改它一个字符串时它会起作用,所以所有这些方法,包括 Hackerman 链接的方法,在使用没有 SecureString 类型的凭据时都有效。
我在更新发布标签以显示它是否损坏或已批准等时遇到问题。我已经通过邮递员完成了这项工作,所以我知道问题不在于此。我正在使用基本身份验证,输入我的用户名和密码,并尝试使用它们的详细信息访问 uri,但对于 powershell,它不起作用。它适用于 Postman,因此它不是凭据。这是我正在做的事情:
$user = Read-Host -Prompt "Enter Bamboo Username"
$pass = Read-Host -Prompt "Enter password" -AsSecureString
$secpass = ConvertTo-SecureString $user -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential($pass,$secpass)
$baseuri = "http://bamboo.uk.myNetwork.net/rest/api/latest/deploy/version/VersionNumber/status/Approved"
$Headers = @{
'X-Atlassian-Token' = 'nochecK'
};
$json = "application/json"
Invoke-RestMethod -Uri $baseuri -Method Post -Credential $credential -Headers $Headers -ContentType $json
这不起作用,我收到 401 客户端必须经过身份验证才能访问此资源。我还尝试了以下所有方法来验证用户,但 none 有效:
<#
$encoded = [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($user+":"+$pass))
$EncodedUsernamePassword = [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($('{0}:{1}' -f $Credential.UserName, $Credential.GetNetworkCredential().Password)))
$pair = "$($user):$($pass)"
$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($pair))
$basicAuthValue = "Basic $encodedCreds"
#>
邮递员 return 以下详细信息:
{
"id": theID,
"userName": "myUserName",
"displayName": "myName",
"creationDate": 1481536833693,
"versionState": "APPROVED"
}
这表明具有基本身份验证并添加 X-Atlassian-Token:nocheck 的 uri 有效,但对于 powershell,我收到身份验证错误这是为什么?
问题是当我将密码用作 SecureString 类型时,当我只更改它一个字符串时它会起作用,所以所有这些方法,包括 Hackerman 链接的方法,在使用没有 SecureString 类型的凭据时都有效。