如何在Java应用程序中实现管理员权限?
我正在开发一个用Java实现的数据建模软件。此应用程序将文本数据(存储在数据库中)转换为图形格式,以便用户可以以更高效的形式解释数据。如何在Java应用程序中实现管理员权限?
1.经理(谁可以填充数据的数据库,他们还可以将数据输入数据库后,查看数据的可视化形式)
:现在,这个应用程序将3种者进行访问2.观众(谁只能查看数据的可视化形式已填补经理)
3.管理员(谁可以创建和管理其他行政人员,管理人员和观众)
现在,如何实现3个差异。同一个应用程序的意见。
注:管理者,观众和管理员可以位于世界上的任何部分,应通过互联网访问应用程序。这排在我的脑海里
一个想法是:
第一步:代码都在EJB中的业务逻辑,以便它可以在分布式环境中使用(指通过访问几个用户通过互联网)
步骤2:代码3 Swing GUI客户端:一个用于管理员,一个用于管理员,一个用于管理员,另一个用于观众。这3个GUI客户端可以访问用EJB编写的业务逻辑。
第3步:分配与其用户对应的客户端。例如,经理客户经理。
================================= 问题 ========== =============================
Q1。以上方法是否正确? Q230。
Q2。这是各种软件具有的常见功能。那么,他们是否通过这种方式或任何其他方式实现了这种功能?
Q3。如果有其他方法会更好,那么这种方法是什么?
- 没有
- 没有
- 是
使不同客户对不同的安全角色是:
- 安全漏洞 - 如果有什么观众获得管理员的版本?
- 难以维持
做到这一点的方法是:
- 使传送到客户端依赖于一个安全检查
- 也使UI的各个部分可见的数据/启用取决于安全检查
- 在服务器上进行安全检查
- 安全ty检查取决于当前登录的用户
- 用户在启动时使用他的凭据(用户名/密码或数字证书)登录
- 安全角色(管理员,主持人,查看器)存储在服务器端。
然后,如果需要的话,您可以通过添加扩展的安全模式:在特定的资源
- 分化每个用户和每个角色的权利之间
- 权利
- 传递的权利
- 特定动作的权限
但是这样的复杂用户权限和安全模型在您的应用程序中可能不需要。
我同意Bozho。三种客户端方法的另一点是:如果用户以某种方式知道如何发送客户端不可用的操作,该怎么办?如果同一用户有两个角色(因此需要有两个客户端)会怎么样?当然,你将有很多工作要做,维护一个客户端...
我@Bozho同意除了以下:
使UI中可见的各种部件/启用取决于安全检查
实际上,你需要对数据进行确认非法访问等被阻止在服务器端,不论客户端UI是否可见/启用。原因是任何客户端UI禁用代码都可以被破坏。事实上,一个坏人甚至可以完全绕过你的用户界面,并逆转你的客户端和服务器代码之间的应用程序特定协议。
这并不是说您不应该禁用/隐藏用户不允许使用的部分UI。这不仅是体面安全/访问控制的良好基础。
(UPDATE:。@Bozho已经ammended他的回答立即添加服务器端阻止对他的列表,所以我现在也完全同意)
没错。我忘记了最重要的 - 数据点。用户界面检查只是一个补充 – Bozho 2010-02-09 07:35:59
+1您已经指出了一个非常重要的一点..谢谢 – 2010-02-09 08:58:56
+1 .........非常翔实的答案...谢谢 – 2010-02-09 06:57:42