PowerFlex 3.x A chamada da API REST "SetPassword" retorna "400 Bad Request"
Summary: Ao usar o PowerShell para interagir com a API REST do VxFlexOS/PowerFlex, a função "setPassword" retorna uma solicitação "400 bad". No entanto, outras funções funcionam bem, como "resetPassword". Situação: Use o código personalizado para definir a senha dos usuários conectados com a função "setPassword" na API REST, o VxFlexOS/PowerFlex Gateway retorna um código HTML "400" de solicitação incorreta. Mas outras funções ainda funcionam sem erros. ...
This article applies to
This article does not apply to
This article is not tied to any specific product.
Not all product versions are identified in this article.
Symptoms
Nos registros ou na linha de comando, algo semelhante ao seguinte mostrará que "O servidor remoto retornou um erro: (400) Pedido inválido":


Cause
Algumas funções que têm payloads de corpo maiores, como "setPassword" (que exige o objeto oldPassword plus value e o objeto newPassword plus value), exigem que o cabeçalho também inclua o tipo de conteúdo "application/json" para que a API REST do VxFlex interprete a pós-chamada corretamente.
Resolution
Para resolver esse problema, forneça o tipo de conteúdo com a Solicitação da Web, por exemplo, o código abaixo no PowerShell requer o "-ContentType "application/json" " adicionado ao método Invoke-WebRequest para que a postagem seja bem-sucedida":
#format the user/pw hash in BASE64 to get it parsed by REST
$head = @{"Authorization" = "Basic "+[System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("admin:Scaleio1234"))}
$head
#get token for authorization.
$r = Invoke-WebRequest -Uri https://192.168.199.76/api/login -Method Get -Headers $head -UseBasicParsing
$token = [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes(":" + $r.content.replace('"','')))
$header = @{'Authorization' = "Basic $token"}
$payload2 = @{
oldPassword = 'Scaleio1234'
newPassword = 'Scaleio123'
}
$body2 = Convertto-JSON -InputObject $payload2
Invoke-WebRequest -Uri https://192.168.199.76/api/instances/User/action/setPassword -Headers $header -Method Post -ContentType "application/json" -Body $body2
A mesma coisa pode ser feita a partir do Curl ou de outras linguagens de programação:
curl -v -k -X POST -H "Content-Type:application/json" ...
Versões afetadas
PowerFlex 3.x
Affected Products
PowerFlex SoftwareProducts
PowerFlex rack, PowerFlex Appliance, PowerFlex custom nodeArticle Properties
Article Number: 000194607
Article Type: Solution
Last Modified: 14 Apr 2025
Version: 2
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.