2012-05-09 1 views
3

おはよう! 私はここで大きな問題を抱えています!まず、JVMでプロキシを設定する方法について昨年質問を投稿しました。これにより、javaでプログラムされたLotus Notes Agentが(Javaでも)Webサービスを経由できるようになりました。私は最後に数週間の研究の後で問題を発見しました。だから、今私たちはユーザーテスト環境でそれを動かす時でしょう。動作しません!しかし、私は同じ問題に直面していません。実際、JVMにプロキシを設定するには、プロパティ "http.proxyHost"と "http.proxyPort"を設定する必要があります。そこで、私はDominoサーバーの管理者にサーバー上の "java.policy"ファイルを変更させて、それらのプロパティにアクセスできるようにしました(私は "java.policy"の開発版をコピーして "UAT " バージョン)。いいえ、運がない!java.policyのいくつかの変更がJVMによって気にされていない

java.security.AccessControlException: access denied (java.util.PropertyPermission http.proxyHost write) 
、我々は許可を与えてみました私たちは、権限付与を反転しようとした

に「はhttp.proxyHost」:まったく同じポリシーファイルを別のサーバーに複製まったく同じコードが2つの異なる方法を振る舞う...私はこの取得しますと "proxyHost"。何もうまくいきませんでした...だから、 "grant"セクション(コードベースなし)のすべてのパーミッションを削除し、AllPermissionだけを置くようにしました。出来た!私の推測では、私たちはポリシーファイルにエラーがあるため、アクセス許可は扱われません。

// 
// @(#)src/security/sov/config/java.policy, security, as142, 20070303 1.4.2.2 
// =========================================================================== 
// Licensed Materials - Property of IBM 
// "Restricted Materials of IBM" 
// 
// IBM SDK, Java(tm) 2 Technology Edition, v1.4.2 
// (C) Copyright IBM Corp. 1998, 2002. All Rights Reserved 
// =========================================================================== 
// 


// Standard extensions get all permissions by default 

grant codeBase "file:${java.home}/lib/ext/*" { 
     permission java.security.AllPermission; 
}; 

// default permissions granted to all domains 

grant { 
     // Allows any thread to stop itself using the java.lang.Thread.stop() 
     // method that takes no argument. 
     // Note that this permission is granted by default only to remain 
     // backwards compatible. 
     // It is strongly recommended that you either remove this permission 
     // from this policy file or further restrict it to code sources 
     // that you specify, because Thread.stop() is potentially unsafe. 
     // See "http://java.sun.com/notes" for more information. 
     permission java.lang.RuntimePermission "stopThread"; 
     permission java.lang.RuntimePermission "setContextClassLoader"; // This was added 

     // allows anyone to listen on un-privileged ports 
     permission java.net.SocketPermission "localhost:1024-", "listen"; 

     permission java.net.NetPermission "setDefaultAuthenticator"; 
     permission java.util.PropertyPermission "http.proxySet", "write"; 
     permission java.util.PropertyPermission "http.proxyHost", "write"; 
     permission java.util.PropertyPermission "http.proxyPort", "write"; 


     // "standard" properies that can be read by anyone 

     permission java.util.PropertyPermission "java.version", "read"; 
     permission java.util.PropertyPermission "java.vendor", "read"; 
     permission java.util.PropertyPermission "java.vendor.url", "read"; 
     permission java.util.PropertyPermission "java.class.version", "read"; 
     permission java.util.PropertyPermission "os.name", "read"; 
     permission java.util.PropertyPermission "os.version", "read"; 
     permission java.util.PropertyPermission "os.arch", "read"; 
     permission java.util.PropertyPermission "file.separator", "read"; 
     permission java.util.PropertyPermission "path.separator", "read"; 
     permission java.util.PropertyPermission "line.separator", "read"; 

     permission java.util.PropertyPermission "java.specification.version", "read"; 
     permission java.util.PropertyPermission "java.specification.vendor", "read"; 
     permission java.util.PropertyPermission "java.specification.name", "read"; 

     permission java.util.PropertyPermission "java.vm.specification.version", "read"; 
     permission java.util.PropertyPermission "java.vm.specification.vendor", "read"; 
     permission java.util.PropertyPermission "java.vm.specification.name", "read"; 
     permission java.util.PropertyPermission "java.vm.version", "read"; 
     permission java.util.PropertyPermission "java.vm.vendor", "read"; 
     permission java.util.PropertyPermission "java.vm.name", "read"; 


     permission java.util.PropertyPermission "java.assistive", "read"; 

}; 

// Notes java code gets all permissions 

grant codeBase "file:${notes.binary}/*" { 
     permission java.security.AllPermission; 
}; 

grant codeBase "file:${notes.binary}/rjext/*" { 
     permission java.security.AllPermission; 
}; 

任意の手掛かりをいただければ幸いです...クライアントはかなり疲れて、これは動作しませんされて:あなたは、この上で私の手を与えることができれば、私は思っていた...ここでのポリシーファイルです!

+2

は'許可java.util.PropertyPermission "*"、 "読み取り、書き込み" を参照ん? –

+0

ねえ!私はそれを試みるつもりです!あなたの経験から、それを設定する危険があると思いますか?どんな "危険な"特性? –

+0

Not working ... java.lang.SecurityException:システムプロパティにアクセスできません。 –

答えて

0

同じ問題を抱えていて、ここでグーグルになる人には、AllProperties get/setのセキュリティを許可してこの問題を解決しました。列挙は、その後、動作しなかった理由を私はまだ...

0

を知っていないファイルDomino\jvm\lib\security\java.securityあなたはファイルjava.polを作成してポリシーをカスタマイズすることができ政策の3つのファイル

# The default is to have a single system-wide policy file, 
# and a policy file in the user's home directory. 
policy.url.1=file:${java.home}/lib/security/java.policy 
policy.url.2=file:${java.home}/lib/security/java.pol 
policy.url.3=file:///${user.home}/.java.policy 

を定義します。 また、dominoサーバーはjava.policyを再初期化します。 `役立ちます。

はよりhttps://www-304.ibm.com/support/docview.wss?uid=swg21679242

関連する問題