2011-09-17 8 views
0

私はこのような典型的なクラスを持っている:これは別のユーザーにAPIを配布する最も良い方法ですか?

public class A { 
    void run(); //for all users 
    void delete(); //for privileged users 
} 

私は別のユーザーに単一のjarとして、これらのクラスを配布する、一般的なユーザーのみが許可されているなど(これらの高い特権を見ることができない方法を見ることができますdelete())、どのように私はこれを達成することができますか? ところで、私はDDDの大きなファンです。これは、これらの方法が崩壊しないようにすることを意味します。アクセス修飾子なし

+0

JARでメソッドを隠すだけではわかりません!あなたはアクセスを制限することができます。メソッドに@RolesAllowedアノテーションを使用することで、JavaEE環境でロールに基づく特定のメソッドへのアクセスを制限することができます。あなたの懸念のために、おそらくSecurityManagerに何かが存在します。 *アクセス制御の実施* [ここ](http://download.oracle.com/javase/6/docs/technotes/guides/security/overview/jsoverview.html) – stratwine

答えて

0

(パブリック/プライベート/保護された...)それは私がこのソリューションで終わる

+0

私はアクセス修飾子が私が望むものを達成できないことを知っていますが、いくつかの良いアイデア? – go2ll

2

見え習慣: ので、一般的なユーザーができない、プライベートまたはパッケージアクセス修飾子を持つ高い特権メソッドのアクセスを制限しますそれらを参照し、特権ユーザーは、これらの方法を反映させて訪問する。

public class A { 
    public void run(); //for all users 
    void delete(); //for privileged users 
} 

特権ユーザ: Reflections.invokeMethod(イン、 "実行");

関連する問題