JNI Call to MIP SDK выдает ошибку - Не удается открыть базу данных, проверьте права доступа к папке: mip_data \ mip \ mip.policies.sqlite3

У нас есть приложение на 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? Наследует ли он все разрешения на собственные вызовы?




Ответы (1)


Какую ОС вы используете? Я не могу ответить на ваш вопрос о Java, но у нас есть частная предварительная версия MIP SDK Java Wrapper для Windows. В ближайшем будущем мы планируем расширить до нескольких дистрибутивов Linux, но в первую очередь собираем отзывы о версии для Windows.

Если вам интересно, я рад предоставить сборку.

person Tom Moser    schedule 02.03.2020
comment
Я наблюдаю ту же проблему с iOS MIP SDK. - person Gaurav Arora; 27.03.2020