ModSecurity: доступ запрещен с кодом 403 (фаза 1) с использованием woocomerce rest api - PullRequest
1 голос
/ 18 мая 2019

Я пытаюсь использовать woocommerce rest api для обновления количества и цены товара, используя метод PUT, но после запуска кода выдает ошибку:

Код ответа 403 Запрещено. У вас нет прав доступа к / wc-api / v2 / products / 15542 на этом сервере.

Я использую сервер Centos 6, я прокомментировал modsecurity_crs_30_http_policy.conf [id "960032"], проводя исследования в Интернете. но все равно это не работает.

public void updateStock() {
    String nonce = RandomStringUtils.randomAlphanumeric(32);
    Map<String, String> paramMap = new TreeMap<>();
    paramMap.put("oauth_consumer_key", key);
    paramMap.put("oauth_timestamp", "" + (System.currentTimeMillis() / 
1000));
    paramMap.put("oauth_nonce", nonce);
    paramMap.put("oauth_signature_method", "HMAC-SHA1");
    List<NameValuePair> qparams = new ArrayList<>();
    for (Map.Entry<String, String> parameter : paramMap.entrySet()) {
        qparams.add(new BasicNameValuePair(parameter.getKey(), 
parameter.getValue()));
    }
    String encodedParams = 
URLEncoder.encode(URLEncodedUtils.format(qparams, ENC), ENC);
    String signature = getSignature("http://topvacuumparts.com/wc- 
api/v2/products/15542", encodedParams, "PUT");
    qparams.add(new BasicNameValuePair("oauth_signature", signature));
    HttpClient httpclient = HttpClientBuilder.create().build();
    URI uri = URIUtils.createURI("http", "topvacuumparts.com", -1, "wc- 
api/v2/products/15542", URLEncodedUtils.format(qparams, ENC), null);
    HttpPut httpget = new HttpPut(uri);
    httpget.setHeader("X-Stream", "true");
    httpget.setHeader("Content-Type", "application/json");        
    JSONObject obj = new JSONObject();
    JSONObject ob = new JSONObject();
    obj.put("stock_quantity", "20");
    ob.put("product", obj);
    StringEntity entity1 = new StringEntity(obj.toString());
    httpget.setEntity(entity1);
    HttpResponse response = httpclient.execute(httpget);
    HttpEntity entity = response.getEntity();
    System.out.println("Response Code " + 
response.getStatusLine().getStatusCode());
}

Это результат: Код ответа 403 Ответ Json 403 Запрещено У вас нет прав доступа к / wc-api / v2 / products / 15542 на этом сервере

...