使用Domino XPages实现Java Google Drive API时的安全问题

fen*_*ten 2 java security xpages google-drive-api

我正在使用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规范的文档...有没有办法将此权限缩小到需要它的特定代码?

谢谢你的帮助

Sve*_*ach 6

请试试

grant {
    permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
};
Run Code Online (Sandbox Code Playgroud)

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

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

grant codeBase "xspnsf://server:0/path/to/your/db.nsf/-" {
    permission java.security.AllPermission;
};
Run Code Online (Sandbox Code Playgroud)

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

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