我在更新发布标签时遇到问题,以显示它是否已损坏或已批准等等。我通过邮递员工作,所以我知道问题不是通过那个问题。我正在使用基本身份验证,输入我的用户名和密码,并尝试使用它们访问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
这不起作用,我得到401client必须通过身份验证才能访问此资源。我还尝试了以下所有方法来验证用户,但没有一个工作:
<#
$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"
#>
邮递员返回以下详细信息:
{
"id": theID,
"userName": "myUserName",
"displayName": "myName",
"creationDate": 1481536833693,
"versionState": "APPROVED"
}
这表明uri具有基本身份验证并添加了X-Atlassian-Token:nocheck,但对于powershell,我收到身份验证错误,为什么会这样?
答案 0 :(得分:0)
问题是当我使用密码作为SecureString类型时,当我更改它只是一个它可以工作的字符串时,所以所有这些方式,包括一个Hackerman链接工作时使用没有SecureString类型的凭证。