本稿では触れませんが、標準のパーミッションクラス以外にも多数のパーミッションクラスが存在し、自分で定義可能なカスタムパーミッションを利用することも可能です。
セキュリティポリシーの定義方法が分かったところで、Cometチャットを利用するためのセキュリティポリシー定義に戻りましょう。Webアプリケーションを発行する際には、利用するアプリケーションの用途に合わせて「WEB APPLICATION PERMISSINOS」に内容を追記していく必要があります。
それでは、実際にCometチャット用にセキュリティポリシーを定義してみます。まずは、設置されているファイルを定義していきます。内容は以下のようになります。
grant codeBase "file:${catalina.home}/webapps/ROOT/WEB-INF/classes/CometServlet.class" { };
次に、許可するパーミッションクラスを定義します。本来であればパーミッションは利用最低限で定義すべきですが、今回はすべてのパーミッションを許可してしまいます。
permission java.security.AllPermission;
この2つの定義を併せた内容を「catalina.policy」ファイルに追記します。
// for CometChat Servlet // grant codeBase "file:${catalina.home}/webapps/ROOT/WEB-INF/classes/CometServlet.class" { permission java.security.AllPermission; };
ファイルの内容を追記したら、ポリシーを適用するためにTomcatを再起動します。起動用のスクリプトに再起動のパラメータを付け、「/etc/init.d/tomcat restart」コマンドを実行します。
[root@www ~]# /etc/init.d/tomcat restart
再起動が完了して再度Cometチャットを起動してみると、無事に起動できました。
実際利用してみると……。
ちゃんとチャットできることが確認できました。
セキュリティポリシーの設定は人の手に掛かっているので「確実に安全」とはいえませんが、セキュリティポリシーの定義を慎重に行っていけば、少なくともいままでよりは安全に、信頼できるWebアプリケーションサーバを構築できるでしょう。
駆け足でしたが以上で、Tomcat 6の新機能紹介と、非常に簡単ながらTomcatでセキュアなWebアプリケーションサーバを構築する方法を紹介する本連載はおしまいです。あとは、利用する環境に合わせてどんどん設定を試してみてください。本連載が少しでも読者の業務に役立てば幸いです。
【参考文献】
x-lab チーム
株式会社アメニクスのR&D部門として、企業の価値向上を目的に結成された研究開発チーム(x-lab=amenix laboratory)。
アメニクスの社員をはじめ、システム開発技術者のみに限らず、MBA教授や外資系出身エンジニアなど幅広いメンバーが所属している。IT技術からマーケティング、金融テクノロジーなどさまざまな分野で活動中。
主な著書
Copyright © ITmedia, Inc. All Rights Reserved.