我正在开发一个用Java实现的数据建模软件。此应用程序将文本数据(存储在数据库中)转换为图形形式,以便用户可以更有效的方式解释数据。现在,这个应用程序将由3种人访问:
1。经理(谁可以用数据填充数据库,他们也可以在将数据输入数据库后查看数据的可视化形式)
2。观众(只能查看经理填写的数据的可视化形式)
3。管理员(可以创建和管理其他管理员,经理和查看者)
现在,如何实现3 diff。相同应用程序的视图。
注意:经理,观众和管理员可以位于世界的任何地方,并且应该通过互联网访问该应用程序。
我想到的一个想法如下:
步骤1:对EJB中的所有业务逻辑进行编码,以便可以在分布式环境中使用(多个用户可以通过互联网访问的方式)
第2步:代码3 Swing GUI客户端:一个用于管理员,一个用于管理员,一个用于查看者。这3个GUI客户端可以访问用EJB编写的业务逻辑。
第3步:分发与其用户对应的客户端。例如,经理客户经理。
=================================的问题的====== =================================
Q1。上述方法是否正确?
Q2。这是各种软件的常用功能。那么,他们是通过这种方式还是以其他方式实现这种功能呢?
Q3。如果任何其他方法会更好,那么这种方法是什么?
答案 0 :(得分:9)
为不同的安全角色创建不同的客户端是:
这样做的方法是:
然后,如果需要,您可以通过添加:
来扩展安全模型但您的应用程序可能不需要这样复杂的用户权限和安全模型。
答案 1 :(得分:2)
我同意@Bozho,但以下情况除外:
根据安全检查确认/启用UI的各个部分
无论客户端UI是否可见/启用,您实际上都需要确保对服务器端 阻止对数据等的不必要访问。这样做的原因是任何客户端UI禁用代码都可以被破坏。实际上,坏人甚至可以完全绕过您的UI并对客户端和服务器代码之间的应用程序特定协议进行逆向工程。
这并不是说您不应该禁用/隐藏不允许用户使用的UI部分。它不是良好的安全/访问控制的良好基础。
(更新:@Bozho现在已经修改了他的答案,将服务器端阻止添加到他的列表中。所以我现在完全赞同它。)
答案 2 :(得分:0)
我同意Bozho的看法。三种客户端方法的另一个要点是:如果用户以某种方式弄清楚如何发送其客户端中不可用的操作,该怎么办?如果同一个用户有两个角色(因此需要有两个客户端),该怎么办?当然,你将有很多工作来维护一个客户......