2011-09-17 80 views
0

我有這樣一個典型的類:這是將api分發給不同用戶的最佳方式?

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

我想這些類作爲一個jar給不同的用戶分佈中,普通用戶只能看到這是允許的方法並不能看到這些高特權(如刪除()),我怎麼能實現這個?順便說一句,我是DDD的忠實粉絲,這意味着我不希望這些方法崩潰。

+0

我不知道它的possilbe只是在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(INS, 「運行」);

相關問題