我需要实现一个可供不同用户使用的Web应用程序。每个用户在各种表上都有不同的特权,例如
Student
Student
我将在UI级别上进行一些操作以限制某些访问,例如,为无权修改条目的用户隐藏“编辑”按钮。但是,我认为我应该在较低级别上(也许在数据库级别上)来确保数据安全。
我正在为我的应用程序使用Hibernate,JBoss,DB2和Struts。我认为我应该使用某种JBoss
LoginModule,它可以通过具有用户/密码/角色的数据库对用户进行身份验证(但我可能是错的(?))。我进行了一些研究,并提出了以下选择,但似乎没有一个适合我的情况。我认为这是多用户Web应用程序中非常常见的数据访问问题。有人可以指出我正确的方向吗?
先感谢您!
在hibernate.cfg.xml
JACC事件侦听器中使用’grant’标签。这可以在所有hibernate实体上设置“插入”,“更新”,“读取”权限。但是,如果我需要更好的控制该怎么办?我需要在某些字段而不是整个对象上设置权限。http://www.hibernate.org/hib_docs/v3/reference/zh-CN/html/objectstate-decl-security.html
限制每个ejb的getter / setter方法的权限。如果我正确理解这一点,则需要为每个用户配置文件手动配置每个bean,这对我来说似乎不现实。 EJB方法权限
编写DAO的代码以检查用户权限。滚动我自己的实用程序函数,该函数在每次调用特定的DAO方法时都会检查巨型权限表,以确定已登录的用户是否可以执行该操作。
在Hibernate中使用“拦截器”和“事件”。为每个类定义特定的“ onLoad”,“ onSaveorUpdate”等事件和拦截器。在这种情况下,我可以为各个字段指定权限级别吗?http://www.hibernate.org/hib_docs/v3/reference/zh-CN/html/objectstate-events.html
我可能在错误的树上吠叫。以上所有这些似乎都是劳动密集型的,不是很聪明。以上选项均未提供给我编程方式来在运行时更改用户权限,当管理员级别的用户希望在此应用中为其他用户提供更多控制权时,这将非常有用。
在这里进行数据访问控制的一种好方法是什么?
将安全密钥添加到实体,创建权限表,并将用户与具有实体类型的许可以及具有角色的安全密钥链接。这样,您可以说出类似的话:Admin_role可以访问Student(实体类型)并进行读取(权限中的操作)和Write(操作),而Student_role可以为其自身和Read_permission访问Student_key。您可以通过将地址重构为实体并向其中添加安全密钥来解决该地址。
您的四号可能有一个封闭世界的假设,并说除非您可以担任用户的当前角色,否则将属性名与字典(实体+属性)哈希中的标记链接到flag,即封闭世界的假设默认情况下不允许读取。那么,您当然不会获得任何写权限等。
您可以在数据库中定义视图,并使用数据库身份验证系统为其分配权限。如果您能够自己编写代码,这可能是最干净的方法,这取决于我们是哪个角色来选择要调用的视图。(我以前的RDBMS老师会喜欢我这么说;)这也与Hibernate有所不同,并将您的东西更多地耦合到数据库中。我想这取决于代码的可移动性/可移植性。
围绕通用dao(IRepository)使用一个方面,该方面根据您的权限重写查询。当然,这意味着您在代码中具有基于权限的安全性。
实际上,只有在您首先移植代码权限时,才能在gui中隐藏编辑按钮,例如在我的观点1上。我建议您看一下Ayendes博客以获取对此的开源实现,他是一个非常熟练的人。编码器。
我正在尝试使用django-storages为带有服务帐户json文件的google云存储桶授予权限。但是,只有当我向所有具有对象视图权限的用户授予访问权限时,才能访问桶中的项目。我如何限制桶的公共访问。
问题内容: 这是我的类,用于从数据库中获取数据 这是我的文件: 当我运行该程序时,出现异常后,请帮助我如何解决它。我是Hibernate的新手,尝试学习但被卡住了。 虽然我能够将数据存储在数据库中,但我有2个用于第一和第二类的数据获取数据,但在获取数据时遇到了问题PLZ帮助。 问题答案: 让我引述一下: 据我所知,您正在使用表名。 所以应该是这样的:
问题内容: 我已经创建了一个关于餐馆的在线数据库,我需要通过我的android应用程序访问该数据库,以便在过滤后可以向用户显示数据。我的应用程序不需要更新数据库,但是我的问题是如何连接到我的在线mysql数据库并将其提供给用户?我已经在该站点以及其他站点上查看了许多建议,但我发现访问时必须使用JSON解析器,但不必这样做。 问题答案: 最好的解决方案是提供一个公共API,例如,使用PHP管理该AP
问题内容: 我有一个用户组:“演示”。 我想设置该用户只能运行10个命令的策略,例如“ vim”,“ nano”,“ cd”等。 或者,将策略设置为对除“ ssh”和“ cat”命令之外的所有命令具有访问权限。 谢谢 问题答案: 您可以通过许多不同的方法来实现这一目标。我将列出几种可能的解决方案之一。 我建议使用几个不同的保护层,以防止用户运行不应被允许访问的命令。此处的所有说明均假定用户具有自己
安装oracle 19C后,它要求用户名和密码。输入什么,以及如何创建一个具有所有权限和身份验证权限的新用户。(注意,我试图通过登录SYSDBA创建用户命令,但它显示错误为无效的普通用户或角色名.在这里输入图像描述 [在此处输入图像描述][2]