将 api 分发给不同用户的最佳方式是什么?

发布于 2024-12-05 08:17:18 字数 251 浏览 0 评论 0原文

我有一个像这样的典型类:

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

莫言歌 2024-12-12 08:17:18

我最终得到这个解决方案:
使用 private 或 package 访问修饰符限制高特权方法的访问,普通用户看不到它们,特权用户通过反射访问这些方法。

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

特权用户:
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.

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

privileged user:
Reflections.invokeMethod(ins,"run");

沉溺在你眼里的海 2024-12-12 08:17:18

如果没有访问修饰符(公共/受保护/私有...),它将不可见

Without a access modifier (public/protected/private...) it wont be visible

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文