Java 应用服务器基于角色的访问控制

Java 应用服务器基于角色的访问控制,java,websphere-8,application-server,Java,Websphere 8,Application Server,我正在致力于在WS-Liberty下实现基于角色的授权服务。 有两个主要目标: 如果没有正确用户组的用户试图打开受限url,则显示错误页面 用户应该会看到一个菜单,列出所有可供其使用的页面 我的问题是:是否有实施这种行为的最佳实践?我应该在server.xml中创建第一部分,在适当的视图中创建第二部分吗? 这样,逻辑将存储在代码的两个不同部分,例如,如果我必须添加一个新的URL,我必须将其插入两个不同的位置 那么,有没有办法将这个角色URL映射存储在一个地方呢 谢谢, krisy在您的应用程序中

我正在致力于在WS-Liberty下实现基于角色的授权服务。 有两个主要目标:

如果没有正确用户组的用户试图打开受限url,则显示错误页面 用户应该会看到一个菜单,列出所有可供其使用的页面 我的问题是:是否有实施这种行为的最佳实践?我应该在server.xml中创建第一部分,在适当的视图中创建第二部分吗? 这样,逻辑将存储在代码的两个不同部分,例如,如果我必须添加一个新的URL,我必须将其插入两个不同的位置

那么,有没有办法将这个角色URL映射存储在一个地方呢

谢谢,
krisy

在您的应用程序中,您可以保护链接检查角色伪代码,一些框架已经为其定制了标记:

if(request.isUserInRole("roleX")) {
  // render menu item for roleX
} 
默认情况下,如果用户已经登录并尝试访问对他有限制的页面,他将收到403未授权,您可以通过web.xml配置为该代码提供错误页面


在server.xml via Application binding元素中,您只提供从应用程序角色到注册表中定义的组的映射。根据注册表类型,您可以将用户添加/删除到给定的组中,授予或拒绝用户权限,例如在LDAP注册表的情况下,通过server.xml或LDAP管理工具。

是的,这是保护代码的编程方式,相反的方式是定义过程角色。这只解决了第一个目标,但不能同时解决两个目标。我正在寻找一个解决这两个问题的解决方案。@krisy你说的程序角色是什么意思?我忘了提到,您还需要在web.xml中定义安全约束,以保护您的资源。使用编程安全性仅隐藏界面中不应可见的部分。