繁体   English   中英

如何在Java Application中实现管理员权限?

[英]How to implement Administrator rights in Java Application?

我正在开发一个用Java实现的数据建模软件 此应用程序将文本数据(存储在数据库中)转换为图形形式,以便用户可以更有效的方式解释数据。 现在,这个应用程序将由3种人访问:

1.经理 (可以用数据填充数据库,他们还可以在将数据输入数据库后查看数据的可视形式)

2.观众 (只能查看经理填写的视觉形式的数据)

3.管理员 (可以创建和管理其他管理员,经理和查看者)

现在,如何实现3 diff。 同一应用程序的视图。

注意:经理,查看者和管理员可以位于世界的任何地方,并应通过互联网访问该应用程序。

我想到的一个想法如下:

步骤1:对EJB中的所有业务逻辑进行编码,以便可以在分布式环境中使用(多个用户可以通过Internet访问的方式)

第2步:代码3 Swing GUI客户端:一个用于管理员,一个用于管理员,一个用于查看者。 这3个GUI客户端可以访问用EJB编写的业务逻辑。

步骤3:分发与其用户对应的客户端。 例如,经理客户经理。

================================= 问题 ================ =======================

Q1。 以上方法是否正确?

Q2。 这是各种软件具有的非常常见的功能。 那么,他们是通过这种方式还是以其他方式实现这种功能?

Q3。 如果任何其他方法会更好,那么这种方法是什么?

  1. 没有
  2. 没有

为不同的安全角色创建不同的客户端是:

  • 安全漏洞 - 如果观众获得管理员版本怎么办?
  • 难以维持

这样做的方法是:

  • 根据安全检查将数据传输到客户端
  • 还可以根据安全检查使UI的各个部分可见/启用
  • 安全检查在服务器上进行
  • 安全检查取决于当前登录的用户
  • 用户使用其凭据(用户名/密码或数字证书)在启动时登录
  • 安全角色(管理员,主持人,查看者)存储在服务器端。

然后,如果需要,您可以通过添加以下内容来扩展安全模型:

  • 区分每个用户和每个角色的权利
  • 对特定资源的权利
  • 传递权利
  • 特定操作的权限

但是在您的应用程序中可能不需要这种复杂的用户权限和安全模型。

除了以下内容,我同意@Bozho:

根据安全检查,使UI的各个部分可见/启用

实际上,您需要确保在服务器端阻止对数据等的不必要访问,而不管客户端UI是否可见/启用。 这样做的原因是任何客户端UI禁用代码都可以被破坏。 实际上,坏人甚至可以完全绕过您的UI并对客户端和服务器代码之间的应用程序特定协议进行反向工程。

这并不是说您不应该禁用/隐藏不允许用户使用的UI部分。 它不是良好的安全/访问控制的良好基础。

(更新:@Bozho现在已经修改了他的答案,将服务器端阻塞添加到他的列表中。所以我现在完全赞同它。)

我同意Bozho的观点。 三种客户端方法的另一个要点是:如果用户以某种方式弄清楚如何发送其客户端中不可用的操作,该怎么办? 如果同一个用户有两个角色(因此需要有两个客户端),该怎么办? 当然,你将有很多工作来维护一个客户......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM