Session 细粒度Web UI访问/授权-Vaadin 7,JBOSS 7.1.1

Session 细粒度Web UI访问/授权-Vaadin 7,JBOSS 7.1.1,session,user-interface,authorization,access-control,vaadin7,Session,User Interface,Authorization,Access Control,Vaadin7,我使用的是Vaadin7和JBoss7.1.1。对非常精细的ui访问有一个业务需求。每个业务功能都有父窗口,并且在该窗口中有与其相关的功能。业务需要在每个用户内启用和禁用这些功能,例如,代表员工的父窗口,当您单击时,您进入子窗口,该子窗口具有编辑、删除、查看、添加等功能,但必须为使用它的用户自定义访问权限,以便用户x可以更新但不能删除,例如。 所以我想到的是将这些信息存储在数据库中。在数据库中,将有一个带有用户名和用户guid的users表。然后是parentview表和parentchildr

我使用的是Vaadin7和JBoss7.1.1。对非常精细的ui访问有一个业务需求。每个业务功能都有父窗口,并且在该窗口中有与其相关的功能。业务需要在每个用户内启用和禁用这些功能,例如,代表员工的父窗口,当您单击时,您进入子窗口,该子窗口具有编辑、删除、查看、添加等功能,但必须为使用它的用户自定义访问权限,以便用户x可以更新但不能删除,例如。
所以我想到的是将这些信息存储在数据库中。在数据库中,将有一个带有用户名和用户guid的users表。然后是parentview表和parentchildren表,最后是userview表。我将在userview表中存储用户guid和他们有权访问的视图,以及读、写、更新等中的访问类型。。。我将在ui登录时根据ldap进行身份验证,获取用户信息和guid,并使用guid从数据库的userview表中提取用户视图访问权限,并将其存储在vaadin会话中,然后在ui上从会话中读取并显示正确的访问权限

我不确定这是否是最好的方法,这就是为什么我问我的解决方案是否可行?我已经读了很多关于安全的文档,但似乎没有达到我想要的。在数据库中保存它的另一点是,我可以创建一个用户管理ui,它可以通过更新数据库来编辑用户访问权限。我不想重新部署Web服务器,也不想对Web服务器做任何事情,我更喜欢ui用户访问控制模块,有权访问的人可以管理该访问权限。我真的很希望能有一些见解和想法


谢谢各位,我非常感谢各位的意见。

无论您身处何种环境,使用何种技术,您都希望实现细粒度的访问控制/授权

实现这一点的方法是使用授权框架。例如,SpringSecurity就有一个。我不确定瓦丁有没有带什么东西

在我们公司中,我们使用Vaadin开发一个管理门户,然后使用它对门户应用细粒度决策,例如为哪些用户启用哪些功能,甚至在Vaadin表中显示哪些项目

一般来说,您希望查看基于属性的访问控制()字段。ABAC允许您基于不同的因素/参数定义授权约束,例如用户属性(位置、部门、角色…)和资源属性(其中资源可以是数据、小部件、功能…您可以命名)

事实上,我昨天就Java MVC应用程序的细粒度授权发表了一篇文章。我想它会对你有用的

如果使用XACML路径,则不需要像以前那样创建包含内部信息的自定义数据库。您只需编写授权策略,例如,采购中的用户可以使用采购功能

有几种开源XACML实现以及供应商解决方案,比如我工作的那个


我希望这有帮助。我还写了一个更长的答案,涵盖了更广泛的授权领域。

忘了说,我正在努力实现细粒度访问。很棒的网络研讨会,我从中学到了很多!,aop和xacml将对我的代码进行巧妙的添加,谢谢david!