簡體   English   中英

來自郵遞員的azure 400錯誤請求命中

[英]azure 400 bad request hits from postman

當我在Java環境中以低於代碼的安全度執行時,它執行得很好,但是如果我使用Node js或Postman執行相同的操作,則會拋出錯誤

我試圖在url3變量中生成的郵遞員中擊中url,返回400錯誤請求。

請求標頭也隨網址一起傳遞。

但相同的網址在Java環境中獲得成功。

private HttpResponse accessTokenStep2(HttpResponse response, Environment environment, String email, String password) throws Exception {
    if(response.getStatusLine().getStatusCode() == 200) {
        String postResponse = EntityUtils.toString(response.getEntity());
        this.transId = getConnectionString(postResponse.toString(), "transId\":\"", "\",\"pageMode\"", 10);
        this.csrfId = getConnectionString(postResponse.toString(), "\"csrf\":\"", "\",\"transId\"", 8);
        String app = environment.getAppUrl();
        String tenant = environment.getTenantId();
        String policy = environment.getPolicy();
        String url2 = "https://" + app + "/" + tenant + "/" + policy + "/SelfAsserted?tx=" + this.transId + "&p=" + policy;
        this.httpPost = new HttpPost(url2);
        List<NameValuePair> nameValuePairs = new ArrayList(3);
        nameValuePairs.add(new BasicNameValuePair("request_type", "RESPONSE"));
        nameValuePairs.add(new BasicNameValuePair("signInName", email));
        nameValuePairs.add(new BasicNameValuePair("password", password));
        nameValuePairs.add(new BasicNameValuePair("g-recaptcha-response-toms", "03AEHxwuy8mq_8jbEWU--XHGea2dF-p7F-oUmZhAgpr1Xt7XyyrzBQpJZJilwhJZPG3D-K_HldpTEEl_2Xi51xm4ICCg6-w66XfR5nE1-Cj39ytH6QZiY2yJUTy-1CJZ6qNfJBsO7EG2Kba7cSGhQgetkhAxJOBtI-FJt5WlRdjP6UHgId11rSVhSCS2kphf1Z-BO62Fu2Jm6jWxnbTiVceEVXuQTOEibtQnQ-n2ckOLI-i0GI1tFBAVi6Lu6NZkQII7m_00ZyJtSoik-1LCNNQ8GXmOxFnnVTnvm-vr3mk_RmNaLS9CT6eGlo0CfpK3DiVTLEArQDTuxY"));
        this.httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
        this.httpPost.setHeader("User-Agent", this.userAgent);
        this.httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded");
        this.httpPost.setHeader("Accept", "application/json, text/javascript, **/*//*; q=0.01");
        this.httpPost.setHeader("X-Requested-With", "XMLHttpRequest");
        this.httpPost.setHeader("X-CSRF-TOKEN", this.csrfId);
        response = this.httpClient.execute(this.httpPost);
        return response;
    } else {
        throw new Exception("Unable to get access token step 2");
    }
}

請找到以下調用相同api的節點函數

    accessTokenStep2 : (obj,env,email,password) => {

    let transId = obj.transid;
    let csrfId = obj.csrfId;
    let app = env.getAppUrl();
    let tenant = env.getTenantId();



    let policy = env.getPolicy();
    let url2 = ("https://" + app + "/" + tenant + "/" + policy + "/SelfAsserted");


    var options = {
        request_type   : "RESPONSE",
        signInName : "*********",
        password : "*****",
        "g-recaptcha-response-toms" : "03AEHxwuy8mq_8jbEWU--XHGea2dF-p7F-oUmZhAgpr1Xt7XyyrzBQpJZJilwhJZPG3D-K_HldpTEEl_2Xi51xm4ICCg6-w66XfR5nE1-Cj39ytH6QZiY2yJUTy-1CJZ6qNfJBsO7EG2Kba7cSGhQgetkhAxJOBtI-FJt5WlRdjP6UHgId11rSVhSCS2kphf1Z-BO62Fu2Jm6jWxnbTiVceEVXuQTOEibtQnQ-n2ckOLI-i0GI1tFBAVi6Lu6NZkQII7m_00ZyJtSoik-1LCNNQ8GXmOxFnnVTnvm-vr3mk_RmNaLS9CT6eGlo0CfpK3DiVTLEArQDTuxY",
        tx : transId,
        p : policy,

    };


 return new Promise( (resolve, reject) => {

     request({
      headers: [{
          'User-Agent'          :  'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0',
          'Content-Type'        : 'application/x-www-form-urlencoded',
          'Accept'              : 'application/json, text/javascript, **/*//*; q=0.01',
          'X-Requested-With'    : 'XMLHttpRequest',
          'X-CSRF-TOKEN'        : csrfId
        }],
        url: url2,
        method: "POST",
        form   : options,
        json: true          
      }, function(error, response, body){

         // console.log(error);
          //console.log(body);
         (response.statusCode == 200 ? resolve(body) : resolve(error));
    });

 });

}

headers是對象,而不是數組,請參閱“ 自定義HTTP標頭”

嘗試:

headers: {
    'User-Agent'          :  'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0',
    'Content-Type'        : 'application/x-www-form-urlencoded',
    'Accept'              : 'application/json, text/javascript, **/*//*; q=0.01',
    'X-Requested-With'    : 'XMLHttpRequest',
    'X-CSRF-TOKEN'        : csrfId
},

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM