StrutsでActionへのHTTPメソッドを制限する。
セキュリティとやらでHTTPのメソッドを制限したいらしいです。しかも反RESTFulな感じで。何でもかんでもPOSTらしい。POSTだと安全と思ってる節がある。bodyにあるかURLにあるかの違いだけなんだけど。
ApacheのLimitでやるのがいいと思うのだが、それもできない場合があるのでアプリケーション側でやることに。
HttpServlet#doGetメソッドで405でも送信してあげれば良いだけなので、サクサクっと。
Struts(SAStruts、S2Strutsも同じ)ではActionServletのサブクラスを作ってdoGetをオーバライドしてあげて、web.xmlに設定すればいいです。
filterでもできるのでどちらでも良いと思います。
Servlet2.5のsecurity-constraintでやったら、403で応答されてしまい、なんか違うので却下。