2

Java jar を使用して Google Drive API を実装しています。ここにあるサンプル DriveCommandLine.java から始めました: https://developers.google.com/drive/quickstart-java。XPage は次のメッセージをスローします: Java コンストラクターの呼び出し中にエラーが発生しました ... (java.lang.reflect.InvocationTargetException)。クラス class java.util.AbstractMap のメンバーへのアクセスは許可されていません

Google Java コードがリフレクションを使用していることを理解していますが、これはデフォルトの Lotus Domino java.policy ファイルでは許可されていません。デフォルトの権限を次のように変更してテストしました。

セキュリティの問題を解決しました。

私の懸念は、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 に答える