Apache 2.4 / JiraでPUT HTTPメソッドを許可する方法[閉じる]

Apache 2.4 / JiraでPUT HTTPメソッドを許可する方法[閉じる]

Ubuntu 16.04でグローバルに、またはApache 2.4の単一の仮想ホストに対してのみPUT HTTPメソッドを有効にする方法を教えてください。いくつか試してみましたが、何も動作しません。 Jiraのリバースプロキシ設定があります。この設定は GET と POST では機能しますが、PUT では機能しません。簡単に言えば、

<VirtualHost *:443>
SSLEngine on


# JIRA Proxy Configuration:
<Proxy *>
Order deny,allow
Allow from all
AllowMethods GET POST PUT DELETE OPTIONS
</Proxy>
SSLProxyEngine On
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>

私の最初のアプローチはProxy *設定でした。

<Limit GET POST PUT DELETE OPTIONS>
Require all granted
</Limit> 

その後私は試しました

<RequireAny>
Require method DELETE GET POST PUT OPTIONS
</RequireAny>

ついに私は試した

AllowMethods GET POST PUT DELETE OPTIONS

私はいつもこうやって

apachectl configtest
apachectl restart

何も動作しません。カールを介してPUT要求を行うたびに、次のようになります。

curl -H "Content-Type: application/json" -X PUT -d '{"comment": "I did some work here.","visibility": {"type": "group","value": "jira-developers"},"started": "2017-09-27T13:06:14.160+0000","timeSpentSeconds": 12000}' https:/hostname/rest/api/2/issue/blubb-11/worklog -vvvv
<snip>
> Content-Type: application/json
> Content-Length: 163
>
* upload completely sent off: 163 out of 163 bytes
< HTTP/1.1 405
< Date: Thu, 28 Sep 2017 14:23:45 GMT
< Server: Apache/2.4.18 (Ubuntu)
< X-AREQUESTID: 983x106858x1
< X-ASEN: SEN-4341829
< X-AUSERNAME: anonymous
< Allow: HEAD,POST,GET,OPTIONS
< X-Content-Type-Options: nosniff
< Content-Type: text/html;charset=UTF-8
< Content-Length: 0
</snip>

ベストアンサー1

問題は、私が送信した間違った形式のJira API Restリクエストでした。要求が間違っている場合、JiraはRestメソッドがPUTをサポートしていても、多少誤解を招くような「Allow:HEAD、POST、GET、OPTIONS」を送信します。

おすすめ記事