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