当前位置: 首页 > 知识库问答 >
问题:

JNI调用MIP SDK给出错误-无法打开数据库,检查文件夹权限:mip_data\mip\mip.policies.sqlite3

曹兴贤
2023-03-14

我们在 java 中有启用了 Java 安全性的应用程序。我们需要从 AIP 云中获取标签。我们可以使用 msal4j java 库获取访问令牌。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安全性是如何工作的?它是否继承了本机调用的所有权限?

共有1个答案

竺绍辉
2023-03-14

您使用的是哪种操作系统?我无法回答您的Java问题,但我们确实在Windows上提供了MIP SDK Java Wrapper的私人预览版。我们计划在不久的将来扩展到一些Linux发行版,但首先正在收集有关Windows版本的反馈。

如果您有兴趣,我很乐意提供一个构建

 类似资料:
  • 我用的是Android平板,上面有Xamarin/C#应用。我试图用这款平板电脑访问驻留在我的Windows 10机器上的SQLite数据库。我选择使用USB/Android而不是Android模拟器,应用程序仍然驻留在Windows 10机器上。这似乎无关紧要,但我也尝试过映射驱动器、共享文件夹和创建网络连接。项目参考 这是代码: 命名空间CicoAndroid{公共部分类MainPage: C

  • 问题内容: 当尝试在CentOS上使用Apache 2.2和PHP 5.3配置上传目录时,我一直收到此错误。 在php.ini中: 在httpd.conf中: CentOS目录权限: 无论我做什么,在上传文件时,都会不断从PHP收到此错误: 警告:move_uploaded_file(images / robot.jpg):无法打开流:在第78行的/var/www/html/mysite/proc

  • 我的具有: 有人知道吗? 更新:我再次尝试了一个教程在这里,并在一个异常页面中得到了相同的错误。 “处理请求时发生未处理的异常。SqliteException:SQLite错误14:”无法打开数据库文件“。Microsoft.Data.SQLite.SqliteException.ThrowExceptionForRC(int rc,sqlite3 db)”

  • 当我跑步时 我得到这个错误 get _ new _ connection conn = database . connect(* * conn _ params)Django . db . utils . operational错误:无法打开数据库文件 my settings.py:

  • 使用以下语法检查在非限制性数据库上授予 的数据库权限: 第1步 ,首先启动数据库。 第2步 ,激活数据库 “XYZ”。 第3步 ,连接到 “XYZ” 数据库。 现在验证数据库的权限: 语法: 示例: 执行结果如下:

  • 问题内容: 问题:为什么我不能打开数据库? 信息:我正在使用数据库进行项目。我编写了一个测试程序,该程序运行并传递数据库: 单元测试程序可以使之毫无问题。但是,当我实际使用将相同位置传递给它的程序时,出现以下错误: OperationalError:无法打开数据库文件 我试着用: 在三种情况下,我遇到了以上错误。最令人沮丧的部分是事实可以做到这一点,但实际程序却做不到。 关于到底发生了什么的任何线