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

Yat*_*oel 3 java security design-patterns ejb

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

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

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

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

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

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

我想到的一个想法如下:

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

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

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

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

Q1.以上方法是否正确?

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

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

Boz*_*zho 9

  1. 没有
  2. 没有

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

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

这样做的方法是:

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

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

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

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