Java 2セキュリティ
Java 2セキュリティマネージャを使用すると、システム管理者は、JVM内のJavaコードに対して使用可能な権限を規定するポリシーを適用できます。
JavaエージェントでJava 2セキュリティマネージャを使用する場合は、Javaセキュリティポリシーファイルを設定して、Javaコードのプリンシパルに権限を適用する必要があります。
Javaコードのプリンシパルは、通常CodeSource (JARなど)によって識別され、まれに署名付きJARのエンティティによる場合もあります。
例えば、Tomcatのデフォルトのcatalina.policyファイルで、このポリシーはJDBCドライバのJARに権限を付与しています。
// The permission granted to your JDBC driver grant codeBase "jar:file:${catalina.base}/webapps/examples/WEB-INF/lib/driver.jar!/-" { permission java.net.SocketPermission "dbhost.mycompany.com:5432", "connect"; };
Java 2セキュリティマネージャは、ユーザがデプロイするコードをシステム管理者が完全に信頼できない場合には便利です。例えば、マルチテナントのTomcatインスタンスでユーザのアプリケーションをホストする場合、Java 2セキュリティマネージャを使用して、ユーザのアプリケーションによってサービス全体が停止されないように制御できます(例、System.exit()
の呼出しを許可しないなど)。
ContrastのJavaエージェントでJava 2セキュリティマネージャを使用する場合は、セキュリティポリシーファイルで、Javaエージェントに全権限を付与する必要があります(java.security.AllPermission)。これを行うには、<YourContrastJarPath>
をContrast JARファイルへのパスに置き換えて、以下を使用してください。
grant codeBase "file:<YourContrastJarPath>" { permission java.security.AllPermission; };
Java 2セキュリティマネージャと、以下のいずれかの環境を使用する場合は、さらに設定が必要になる場合があります。