O problema foi uma solicitação incorreta do Jira API Rest do meu lado. Se a solicitação estiver incorreta, Jira envia um erro "Allow: HEAD, POST, GET, OPTIONS", mesmo se o método Rest suportar PUT.
alguém pode me dizer como habilitar o método HTTP PUT globalmente ou apenas para um único vHost no Apache 2.4 no Ubuntu 16.04? Eu já tentei várias coisas, mas nenhuma funcionou. Eu tenho uma configuração de proxy reverso para Jira. A configuração funciona bem para GET e POST, mas não para PUT. Em resumo, parece assim:
<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>
Minha primeira abordagem foi com dentro da minha configuração do Proxy *:
<Limit GET POST PUT DELETE OPTIONS>
Require all granted
</Limit>
depois disso eu tentei
<RequireAny>
Require method DELETE GET POST PUT OPTIONS
</RequireAny>
por último eu tentei
AllowMethods GET POST PUT DELETE OPTIONS
Eu sempre fiz
apachectl configtest
apachectl restart
Nada funciona. Sempre que eu faço um pedido PUT via curl ele mostra
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>
Tags apache-httpd