「CSRFトークンの検証に失敗しました」エラーでポスト操作が失敗する

アシャカブラ:

SAP Hybris C4CエンティティでPOST操作を試行しています。

POST中にGET操作を使用して最初に取得できるX-CSRF-Tokenを送信する必要があると述べられている多くのブログに出くわしました。

私はそれをPostmanを使ってうまく行うことができました。PostmanがCSRFトークンの検証に失敗しないCookieを保存するため。

しかし、実際にはこれをgolangを使用して呼び出したいと思います。「CSRFトークンの検証に失敗しました」というエラーが毎回発生していました。その後、多くのブログを調査した結果、HTTP POSTが新しいセッションとして扱われないように、X-CSRF-TokenだけでなくCookieも設定する必要があることがわかりました。そうしないと、送信したcsrfトークンが現在のセッションと一致せず、エラーが発生します。

上記の2つのリードに従っても、エラーが発生します。以下はコードスニペットですが、他に何が欠けているのかわかりません。

コードスニペット:

auth := "******:*****"
basicAuth := base64.StdEncoding.EncodeToString([]byte(auth))

geturl := "https://******.crm.ondemand.com/sap/c4c/odata/v1/c4codataapi"
req, _ := http.NewRequest("GET", geturl, nil)
req.Header.Set("Authorization", "Basic "+basicAuth)
req.Header.Set("X-Csrf-Token", "Fetch")
cli := &http.Client{}
res, _ := cli.Do(req)

inputMap := make(map[string]interface{})
inputMap["PriorityCodeText"] = "Normal"
inputJSON, _ := json.Marshal(inputMap)

url := "https://*******.crm.ondemand.com/sap/c4c/odata/v1/c4codataapi/OpportunityCollection"
request, _ := http.NewRequest("POST", url, bytes.NewBuffer(inputJSON))
request.Header.Set("Authorization", "Basic "+basicAuth)
request.Header.Set("X-Csrf-Token", res.Header.Get("X-Csrf-Token"))
request.Header.Set("Cookie", res.Header.Get("Set-Cookie"))
request.Header.Set("X-Requested-With", "XMLHttpRequest")
request.Header.Set("Content-Type", "application/atomsvc+xml")
request.Header.Set("DataServiceVersion", "2.0")
//request.Header.Set("Accept", "application/atom+xml")
client := &http.Client{}
resp, _ := client.Do(request)
fmt.Printf("Response status code is: %d", resp.StatusCode)
jsonResponseData, _ := ioutil.ReadAll(resp.Body)
fmt.Printf("Response is: %s", jsonResponseData)
アシャカブラ:

出来た!@gpで述べたように、ヘッダーを設定するだけでなく、すべてのCookieをコピーする必要がありました。以下のコードスニペットを変更しました

//request.Header.Set("Cookie", res.Header.Get("Set-Cookie"))
for i := 0; i < len(res.Cookies()); i++ {
    request.AddCookie(res.Cookies()[i])
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

エラー:「CSRF検証に失敗しました。リクエストは中止されました。」Djangoでjqueryjsonを使用する場合

分類Dev

Microsoft Graph API認証エラー:「アクセストークンの検証に失敗しました。対象ユーザーが無効です」

分類Dev

「ホストキーの検証に失敗しました」でDeja-dupが失敗する

分類Dev

「ホストキーの検証に失敗しました」でDeja-dupが失敗する

分類Dev

Identity Server3アクセストークン検証エンドポイントがオーディエンス検証に失敗して失敗する

分類Dev

Azure ADトークンを検証しようとすると、エラー「IDX10511:署名の検証に失敗しました」が表示されます

分類Dev

ElasticsearchCrudRepositoryの一括挿入でエラーが発生する-検証に失敗しました:1:リクエストが追加されていません

分類Dev

リクエストの検証が失敗した場合でも、コントローラーに進みます

分類Dev

Gitクローンが失敗する:サーバー証明書の検証に失敗しました

分類Dev

Microsoft GraphAPIトークンの検証に失敗しました

分類Dev

SSH「ホストキーの検証に失敗しました」エラー

分類Dev

Twitterリクエストトークン(oauth署名とトークンの検証に失敗しました)

分類Dev

ebayordersAPI-APIリクエストの認証トークンの検証に失敗しました

分類Dev

Gitエラー:リモートリポジトリに接続するときに「ホストキーの検証に失敗しました」

分類Dev

CSRF トークンによる JMeter 認証が失敗する (401 エラー)

分類Dev

SonarQubeのインストール-Github認証プラグインが「PKIXパスの構築に失敗しました」で失敗する

分類Dev

npmインストールエラー:「ホストキーの検証に失敗しました。」

分類Dev

アクセストークンの検証に失敗しましたMicrosoftGraph API

分類Dev

CSRF検証に失敗しました。フォームの更新時にリクエストが中止されました

分類Dev

アクセストークンの検証に失敗しました。無効なオーディエンス

分類Dev

IDサーバー4での「クライアントのクライアントシークレット検証に失敗しました」エラー

分類Dev

sshキーが原因でGitプッシュが失敗する:ホストキーの検証に失敗しました。Docker内から

分類Dev

アプリの検証時にiTunesストアの操作に失敗しましたエラーが発生しました

分類Dev

WindowsにRubygemをインストールする際の「証明書の検証に失敗しました」エラー

分類Dev

WindowsにRubygemをインストールする際の「証明書の検証に失敗しました」エラー

分類Dev

ユーザーが 30 分以上ポストバックしない場合の「ビューステート MAC の検証に失敗しました」エラーを防ぐにはどうすればよいですか?

分類Dev

AWSEC2インスタンスのdockerfile内でホストおよびプライベートgitリポジトリとしてgitcloneを実行すると、ホスト検証に失敗しましたエラー

分類Dev

Inno Setupから実行されたPowerShellスクリプトが、「CLSID {XXXX}を持つコンポーネントのCOMクラスファクトリの取得に失敗しました-エラー80040154」で失敗します。

分類Dev

クライアント側の検証が失敗した場合にASP.NETMVCレジスタフォームでajaxスピナーを停止する方法

Related 関連記事

  1. 1

    エラー:「CSRF検証に失敗しました。リクエストは中止されました。」Djangoでjqueryjsonを使用する場合

  2. 2

    Microsoft Graph API認証エラー:「アクセストークンの検証に失敗しました。対象ユーザーが無効です」

  3. 3

    「ホストキーの検証に失敗しました」でDeja-dupが失敗する

  4. 4

    「ホストキーの検証に失敗しました」でDeja-dupが失敗する

  5. 5

    Identity Server3アクセストークン検証エンドポイントがオーディエンス検証に失敗して失敗する

  6. 6

    Azure ADトークンを検証しようとすると、エラー「IDX10511:署名の検証に失敗しました」が表示されます

  7. 7

    ElasticsearchCrudRepositoryの一括挿入でエラーが発生する-検証に失敗しました:1:リクエストが追加されていません

  8. 8

    リクエストの検証が失敗した場合でも、コントローラーに進みます

  9. 9

    Gitクローンが失敗する:サーバー証明書の検証に失敗しました

  10. 10

    Microsoft GraphAPIトークンの検証に失敗しました

  11. 11

    SSH「ホストキーの検証に失敗しました」エラー

  12. 12

    Twitterリクエストトークン(oauth署名とトークンの検証に失敗しました)

  13. 13

    ebayordersAPI-APIリクエストの認証トークンの検証に失敗しました

  14. 14

    Gitエラー:リモートリポジトリに接続するときに「ホストキーの検証に失敗しました」

  15. 15

    CSRF トークンによる JMeter 認証が失敗する (401 エラー)

  16. 16

    SonarQubeのインストール-Github認証プラグインが「PKIXパスの構築に失敗しました」で失敗する

  17. 17

    npmインストールエラー:「ホストキーの検証に失敗しました。」

  18. 18

    アクセストークンの検証に失敗しましたMicrosoftGraph API

  19. 19

    CSRF検証に失敗しました。フォームの更新時にリクエストが中止されました

  20. 20

    アクセストークンの検証に失敗しました。無効なオーディエンス

  21. 21

    IDサーバー4での「クライアントのクライアントシークレット検証に失敗しました」エラー

  22. 22

    sshキーが原因でGitプッシュが失敗する:ホストキーの検証に失敗しました。Docker内から

  23. 23

    アプリの検証時にiTunesストアの操作に失敗しましたエラーが発生しました

  24. 24

    WindowsにRubygemをインストールする際の「証明書の検証に失敗しました」エラー

  25. 25

    WindowsにRubygemをインストールする際の「証明書の検証に失敗しました」エラー

  26. 26

    ユーザーが 30 分以上ポストバックしない場合の「ビューステート MAC の検証に失敗しました」エラーを防ぐにはどうすればよいですか?

  27. 27

    AWSEC2インスタンスのdockerfile内でホストおよびプライベートgitリポジトリとしてgitcloneを実行すると、ホスト検証に失敗しましたエラー

  28. 28

    Inno Setupから実行されたPowerShellスクリプトが、「CLSID {XXXX}を持つコンポーネントのCOMクラスファクトリの取得に失敗しました-エラー80040154」で失敗します。

  29. 29

    クライアント側の検証が失敗した場合にASP.NETMVCレジスタフォームでajaxスピナーを停止する方法

ホットタグ

アーカイブ