0

Javaセキュリティが有効になっているJavaにアプリケーションがあります。AIP クラウドからタグを取得する必要があります。msal4j J​​ava ライブラリを使用してアクセス トークンを取得できました。MS が提供する MIP 用の Java ライブラリはないため、ネイティブ dll を実装して AIP ラベルをフェッチします。この dll は、Web アプリケーションと統合されています。アプリケーションは、ネイティブ ライブラリへの JNI 呼び出しを実行して、ラベルを取得します。

MIP SDK は、ラベルをキャッシュするために sqlite データベースを作成すると思います。そのため、内部的にローカル ディスクに sqlite ファイルを作成します。しかし、セキュリティが有効になっているため、MIP dll のアクセス拒否エラーが発生します。

「データベースを開けません。フォルダーのアクセス許可を確認してください: mip_data\mip\mip.policies.sqlite3」

manager.policy で以下の権限を与えようとしましたが、機能しません

grant codeBase "../Protect/lib/native/*" {

permission java.io.FilePermission "../Protect/bin/mip_data/mip/mip.policies.sqlite3", "read,write,delete";
permission java.io.FilePermission "../Protect/bin/mip_data/mip", "read,write,delete";
permission java.io.FilePermission "../Protect/bin/mip_data", "read,write,delete";
permission java.io.FilePermission "../Protect/bin", "read,write,delete";
};

grant codeBase "../Protect/lib/native/-" {

permission java.io.FilePermission "../Protect/bin/mip_data/mip/mip.policies.sqlite3", "read,write,delete";
permission java.io.FilePermission "../Protect/bin/mip_data/mip", "read,write,delete";
permission java.io.FilePermission "../Protect/bin/mip_data", "read,write,delete";
permission java.io.FilePermission "../Protect/bin", "read,write,delete";
};

grant codeBase "../Protect/lib/native/-" {

permission java.io.FilePermission "../Protect/bin/mip_data/mip/mip.policies.sqlite3", "read,write,delete";
permission java.io.FilePermission "../Protect/bin/mip_data/mip", "read,write,delete";
permission java.io.FilePermission "../Protect/bin/mip_data", "read,write,delete";
permission java.io.FilePermission "../Protect/bin", "read,write,delete";
};

grant codeBase "file:${catalina.home}/webapps/ProtectManager/WEB-INF/lib/*" 
{
permission java.io.FilePermission "../Protect/bin/mip_data/mip/mip.policies.sqlite3", "read,write,delete";
permission java.io.FilePermission "../Protect/bin/mip_data/mip", "read,write,delete";
permission java.io.FilePermission "../Protect/bin/mip_data", "read,write,delete";
permission java.io.FilePermission "../Protect/bin", "read,write,delete";

}

JNI の場合、Java セキュリティはどのように機能しますか? ネイティブ呼び出しに対するすべての権限を継承しますか?

4

1 に答える 1