У нас есть приложение в java, где включена защита Java. Нам нужно получить теги из облака AIP. Мы могли бы получить токен доступа, используя библиотеку msal4j java. Нет библиотеки java, предоставляемой MS для MIP, поэтому мы реализовали нативный dll для получения меток AIP. Эта DLL интегрирована с нашим веб-приложением. Приложение выполняет вызовы 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";
}
Как работает защита Java в случае JNI? Унаследует ли он все разрешения для собственных вызовов?