0

Java セキュリティ ポリシーを正しく設定しようとしています。私のコードは、約 100 の異なる値のいずれかを取ることができるlogin.salesforce.comxx99.salesforce.comwhereの両方を解決して接続する必要があります。xx99

特定のホストをハードコードすると機能します-たとえば

permission java.net.SocketPermission "login.salesforce.com:443", "connect, resolve";
permission java.net.SocketPermission "na30.salesforce.com:443", "connect, resolve";

しかし、これにより、セキュリティ ポリシー ファイルに約 100 のエントリを追加してすべての可能性をカバーすることになり、Salesforce は常に新しいインスタンスを追加するため、メンテナンスは悪夢のようになります。

ホスト/ポートをワイルドカード化すると機能します。

permission java.net.SocketPermission "*", "connect, resolve";

しかし、明らかな答えは失敗します-これ

permission java.net.SocketPermission "*.salesforce.com:443", "connect, resolve";

私にくれます

2016-03-20 22:19:56,024 [user:*admin] [pipeline:Pipeline1] [thread:preview-pool-1-thread-1] WARN  Pipeline - Stage 'com_streamsets_stage_destination_waveanalytics_WaveAnalyticsDTarget_1' initialization error: java.security.AccessControlException: access denied ("java.net.SocketPermission" "login.salesforce.com:443" "connect,resolve")
java.security.AccessControlException: access denied ("java.net.SocketPermission" "login.salesforce.com:443" "connect,resolve")
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:472)
    at java.security.AccessController.checkPermission(AccessController.java:884)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
    at java.lang.SecurityManager.checkConnect(SecurityManager.java:1051)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:510)
    ...etc...

しばらくこれをじっと見つめていました - 私はそれを理解していません!

4

1 に答える 1