2010-02-09 170 views
3

我正在开发一个用Java实现的数据建模软件。此应用程序将文本数据(存储在数据库中)转换为图形格式,以便用户可以以更高效的形式解释数据。如何在Java应用程序中实现管理员权限?

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

:现在,这个应用程序将3种者进行访问

2.观众(谁只能查看数据的可视化形式已填补经理)

3.管理员(谁可以创建和管理其他行政人员,管理人员和观众)

现在,如何实现3个差异。同一个应用程序的意见。

注:管理者,观众和管理员可以位于世界上的任何部分,应通过互联网访问应用程序。这排在我的脑海里

一个想法是:

第一步:代码都在EJB中的业务逻辑,以便它可以在分布式环境中使用(指通过访问几个用户通过互联网)

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

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

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

Q1。以上方法是否正确? Q230。

Q2。这是各种软件具有的常见功能。那么,他们是否通过这种方式或任何其他方式实现了这种功能?

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

回答

9
  1. 没有
  2. 没有

使不同客户对不同的安全角色是:

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

做到这一点的方法是:

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

然后,如果需要的话,您可以通过添加扩展的安全模式:在特定的资源

  • 分化每个用户和每个角色的权利之间
  • 权利
  • 传递的权利
  • 特定动作的权限

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

+0

+1 .........非常翔实的答案...谢谢 – 2010-02-09 06:57:42

0

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

2

我@Bozho同意除了以下:

使UI中可见的各种部件/启用取决于安全检查

实际上,你需要对数据进行确认非法访问等被阻止在服务器端,不论客户端UI是否可见/启用。原因是任何客户端UI禁用代码都可以被破坏。事实上,一个坏人甚至可以完全绕过你的用户界面,并逆转你的客户端和服务器代码之间的应用程序特定协议。

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

(UPDATE:。@Bozho已经ammended他的回答立即添加服务器端阻止对他的列表,所以我现在也完全同意)

+0

没错。我忘记了最重要的 - 数据点。用户界面检查只是一个补充 – Bozho 2010-02-09 07:35:59

+0

+1您已经指出了一个非常重要的一点..谢谢 – 2010-02-09 08:58:56

相关问题