我有這樣一個典型的類:這是將api分發給不同用戶的最佳方式?
public class A {
void run(); //for all users
void delete(); //for privileged users
}
我想這些類作爲一個jar給不同的用戶分佈中,普通用戶只能看到這是允許的方法並不能看到這些高特權(如刪除()),我怎麼能實現這個?順便說一句,我是DDD的忠實粉絲,這意味着我不希望這些方法崩潰。
我有這樣一個典型的類:這是將api分發給不同用戶的最佳方式?
public class A {
void run(); //for all users
void delete(); //for privileged users
}
我想這些類作爲一個jar給不同的用戶分佈中,普通用戶只能看到這是允許的方法並不能看到這些高特權(如刪除()),我怎麼能實現這個?順便說一句,我是DDD的忠實粉絲,這意味着我不希望這些方法崩潰。
我結束了此解決方案: 限制了私人或包訪問修飾符高特權方法訪問,因此普通用戶不能看到他們,特權用戶通過反思訪問這些方法。
public class A {
public void run(); //for all users
void delete(); //for privileged users
}
特權用戶: Reflections.invokeMethod(INS, 「運行」);
我不知道它的possilbe只是在JAR中隱藏一個方法!雖然你可以限制訪問。通過在方法上使用@RolesAllowed註釋,可以在JavaEE環境中實現基於角色限制對某些方法的訪問。爲了您的擔心,SecurityManager中可能存在某些內容。見*訪問控制執行* [這裏](http://download.oracle.com/javase/6/docs/technotes/guides/security/overview/jsoverview.html) – stratwine