7系初の安定版ということで、気になっていた。
今回、ちょっと時間があったので試してみた。
http://journal.mycom.co.jp/news/2011/01/17/064/index.html
いくつか新機能があるみたいだが、
一番、惹かれたのはパフォーマンスの向上が見込まれることだった。
で、早速インストールして、Eclipseから起動しようと思ったら、SysdeoのTomcat Launcher pluginに7系がない。
http://www.eclipsetotale.com/tomcatPlugin.html#A3
チェックしたら、V33が出ていて対応しているようだ。良かった〜。
6.0.29で開発していたアプリケーションを起動すると何事もなく起動した。
お。トラブルなく適用できるのか?と期待してログイン処理をしてみたらエラー発生。。。
ERROR org.directwebremoting.dwrp.Batch - A request has been denied as a potential CSRF attack.
とか出ている。
CSRFって何か見たことあるなぁ。新機能にそれっぽいのを見た気がすると思って調べてみた。
http://d.hatena.ne.jp/c9katayama/20100715/1279162138
ふむ。要はサイト外からのリクエストによって不正な処理が行われてしまうことみたいね。
そしてなぜか、DWRがサイト外からのリクエストがあったと判断してしまったようだ。
なんでだろ?tomcat7がCSRFの対策でリクエストにトークンくっつけたりしてるのが悪いのだろうか?
これの対応策は、web.xmlの <servlet-name>dwr-invoker</servlet-name> に
<init-param>
<param-name>crossDomainSessionSecurity</param-name>
<param-value>false</param-value>
</init-param>
を追加して、クロスドメインを許可にすればOK。
ただし、この対策はセキュリティ上好ましくない。
でも、Tomcat7でCSRFのチェックしてるんだったら、DWRではOFFにしててもいいのかなぁ〜。