将 api 分发给不同用户的最佳方式是什么?
我有一个像这样的典型类:
public class A {
void run(); //for all users
void delete(); //for privileged users
}
我想将这些类作为单个jar分发给不同的用户,普通用户只能看到允许的方法,而看不到这些高权限的方法(如delete()),我该如何实现这? 顺便说一句,我是 DDD 的忠实粉丝,这意味着我不希望这些方法崩溃。
I have a typical class like this:
public class A {
void run(); //for all users
void delete(); //for privileged users
}
I want to distribute these classes as a single jar to different users, the common users can only see the methods which is permitted and cannot see these high privileged(like delete()), how can i achieve this?
By the way i am a big fan of DDD, which means i donot want these methods to fall apart.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我最终得到这个解决方案:
使用 private 或 package 访问修饰符限制高特权方法的访问,普通用户看不到它们,特权用户通过反射访问这些方法。
特权用户:
Reflections.invokeMethod(ins,"run");
I end up with this solution:
restrict high privileged method access with private or package access modifier, so common user cannot see them, and privileged user visit these method through reflection.
privileged user:
Reflections.invokeMethod(ins,"run");
如果没有访问修饰符(公共/受保护/私有...),它将不可见
Without a access modifier (public/protected/private...) it wont be visible