[英]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。 如果任何其他方法会更好,那么这种方法是什么?
为不同的安全角色创建不同的客户端是:
这样做的方法是:
然后,如果需要,您可以通过添加以下内容来扩展安全模型:
但是在您的应用程序中可能不需要这种复杂的用户权限和安全模型。
除了以下内容,我同意@Bozho:
根据安全检查,使UI的各个部分可见/启用
实际上,您需要确保在服务器端阻止对数据等的不必要访问,而不管客户端UI是否可见/启用。 这样做的原因是任何客户端UI禁用代码都可以被破坏。 实际上,坏人甚至可以完全绕过您的UI并对客户端和服务器代码之间的应用程序特定协议进行反向工程。
这并不是说您不应该禁用/隐藏不允许用户使用的UI部分。 它不是良好的安全/访问控制的良好基础。
(更新:@Bozho现在已经修改了他的答案,将服务器端阻塞添加到他的列表中。所以我现在完全赞同它。)
我同意Bozho的观点。 三种客户端方法的另一个要点是:如果用户以某种方式弄清楚如何发送其客户端中不可用的操作,该怎么办? 如果同一个用户有两个角色(因此需要有两个客户端),该怎么办? 当然,你将有很多工作来维护一个客户......
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.