StrutsでActionへのHTTPメソッドを制限する。

セキュリティとやらでHTTPのメソッドを制限したいらしいです。しかも反RESTFulな感じで。何でもかんでもPOSTらしい。POSTだと安全と思ってる節がある。bodyにあるかURLにあるかの違いだけなんだけど。

ApacheのLimitでやるのがいいと思うのだが、それもできない場合があるのでアプリケーション側でやることに。

HttpServlet#doGetメソッドで405でも送信してあげれば良いだけなので、サクサクっと。
Struts(SAStrutsS2Strutsも同じ)ではActionServletのサブクラスを作ってdoGetをオーバライドしてあげて、web.xmlに設定すればいいです。

filterでもできるのでどちらでも良いと思います。

Servlet2.5のsecurity-constraintでやったら、403で応答されてしまい、なんか違うので却下。