2003-10-22 (Wed) [長年日記]

Sun の JDK 以外の Tool

プロファイリングツールの JFluid はぜひ使ってみよう。

Tags: Java

ミニッツレーサー

ラジコン話してたら一昨年ぐらいにブームになって買って、そして去年まんちゃんに壊されたミニッツレーサーがまたやりたくなってきた。

久しぶりにチェックしてみると、最初からスタビライザーやダンパーが付いてくるシャーシが出てるんだな。これでエンツォフェラーリにしたら、かなり爽快だろうな。

あとオフロードっぽい「ミニッツモンスター」なんてモデルもあるのかー。

再開したくなるね。

Tomcat セキュリティマネージャ

今まで Solaris で動いていた Scarab を Debian に載せる。

Debian の Tomcat はデフォルトでセキュリティマネージャが有効になっている。Scarab 向けの Policy 設定を

/etc/tomcat4/policy.d/90scarab.policy 

へ書き出すことにした。

Tubine の System プロパティの設定を許可するために

permission java.util.PropertyPermission "mail.host", "read,write";
permission java.util.PropertyPermission "mail.smtp.from", "read,write";

を設定したものの、どうしても mail.host をセットするところでセキュリティ例外がでる。 VM の既知のプロパティしかパーミッションの設定できないのかな?

しかたがないので

permission java.util.PropertyPermission "*", "read,write";

とする。

最終的には log 出力、JDBC 接続を含めてこんな感じ。

「Jakarta Tomcat パーフェクトガイド」 P442 のサンプル設定では 「permission」 が抜けているので注意。

grant {
  // Scarab
  // log の出力を許可
  permission java.io.FilePermission "/var/lib/tomcat4/webapps/scarab/logs/-", "read,write,execute,delete";
  // システムプロパティ
  permission java.util.PropertyPermission "*", "read,write";

};

grant codeBase "file:${catalina.home}/webapps/scarab/-" {
  permission java.net.SocketPermission "localhost:3306", "connect";
  permission java.net.SocketPermission "localhost:25", "connect";
  permission java.lang.RuntimePermission "accessDeclaredMembers.javax.servlet.http.*";
  permission java.lang.RuntimePermission "accessDeclaredMembers.org.apache.fulcrum.*";
  permission java.lang.RuntimePermission "accessDeclaredMembers.org.apache.turbine.*";
  permission java.lang.RuntimePermission "accessDeclaredMembers.org.tigris.scarab.*";
};

...と、ここまで詰めたけど fulcrum のサービスをリフレクションでインスタンス化するところのセキュリティ例外が解消されない。Turbine.proprties で登録されているサービスは上の設定で対応できるはずなのになぁ。どのクラスのインスタンス生成でエラーになるのか表示されないので追跡を断念。

結局

grant codeBase "file:${catalina.home}/webapps/scarab/-" {
  permission java.security.AllPermission;
};

でしのぐことに...泣。

しかし、Solaris でコンパイルしたバイナリがそのまま動くのは流石か*1。次は Scarab b17 へ upgrade しよう。

参考

Tags: Java

*1 当たり前か

MySQL の JDBC 接続

参考情報によると Debian の標準では TCP による connect ができない状態でインストールされる。

/etc/mysql/my.cnf の skip-networking をコメントアウト。

# The skip-networkin option will no longer be set via debconf menu.
# You have to manually change it if you want networking i.e. the server
# listening on port 3306. The default is "disable" - for security reasons.
#skip-networking
set-variable    = key_buffer=16M
set-variable    = max_allowed_packet=1M
set-variable    = thread_stack=128K

参考