2

我正在使用 java jar 实现 Google Drive API。我从此处找到的示例 DriveCommandLine.java 开始:https ://developers.google.com/drive/quickstart-java 。XPage 抛出以下内容: 调用 java 构造函数时出错 ... (java.lang.reflect.InvocationTargetException)。不允许访问类 java.util.AbstractMap 中的成员

我了解 Google java 代码使用反射,默认 Lotus Domino java.policy 文件不允许这样做。我测试了将默认权限更改为:permission java.security.AllPermission;

这解决了安全问题。

我现在担心的是,不要让 java.policy 文件具有打开的默认权限。我找不到 java.policy 规范的文档...有没有办法将此权限缩小到需要它的特定代码?

谢谢你的帮助

4

1 回答 1

6

请试试

grant {
    permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
};

这应该允许您的 java 类的反射。

或者,您可以仅限制单个数据库的策略设置:

grant codeBase "xspnsf://server:0/path/to/your/db.nsf/-" {
    permission java.security.AllPermission;
};

在此设置中,您必须更改数据库的路径(仅通过替换/path/to/your/db.nsf/而不是server:0)。

您也可以将其限制为 ReflectPermission,而不是将所有权限授予单个数据库。

于 2013-02-26T13:16:01.283 回答