CR #1326054 was opened for the issue where Barbican would default to HTTP GET handler if there is no handler for the method specified in the request. The correct action is to return a "HTTP 405 Method Not Allowed" response with a "Allow" header listing the allowed methods.
A fix was proposed for this CR (https://review.openstack.org/#/c/100814/) but reviews on it resulted in opening a CR with Pecan(https://review.openstack.org/#/c/102839/).
The Pecan fix helps to automatically build the 'Allow' response header to be returned along with the HTTP 405 error response.
However, for this fix to work, the Barbican Pecan controllers has to be written in a manner recommended here: http://screens.objects.dreamhost.com/06-23-2014-17-45-31.png
All Barbican controllers currently use the generic "index" method as the HTTP GET handler. These controllers need to be refactored such that the GET handler code has to be moved from the "index" method to a separate "do_get" method.
Also, the requirements.txt has to be updated to use the correct version of pecan library that includes the fix for the 'Allow' header.
I'll be releasing the new version of pecan in the next week, so you all will need to pin pecan >= 0.6.0 in the fix for this bug.