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

问题描述:

我正在WS Liberty下实现基于角色的授权服务。 有两个主要目标:基于角色的应用服务器访问控制1

  • ,如果没有正确的用户组的用户试图打开一个受限制的网址,显示错误页面
  • 用户应该看到一个菜单,列出所有可用的页面为他

我的问题是:是否有最佳实践来实现这种行为?我应该在server.xml中创建第一部分,并在适当的视图中创建第二部分? (这种方式“逻辑”将存储在代码的两个不同部分,例如如果我必须添加一个新的URL,我必须将它插入到两个不同的地方)

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

感谢, krisy

在你的应用程序可以保护链接检查角色(伪代码,一些框架已经为它定制标签):

if(request.isUserInRole("roleX")) { 
    // render menu item for roleX 
} 

默认情况下,如果用户已经登录并尝试访问限制他的页面,他将收到403 Not authorized,您可以通过web.xml配置为该代码提供错误页面。

server.xml via Application binding元素中,您只提供从应用程序角色到注册表中定义的组的映射。根据注册表类型的不同,您将能够向给定组添加/删除用户,例如通过server.xml或LDAP管理工具对LDAP注册表进行授权或拒绝。

+0

是的,这是保护代码的程序化方式(相反的方式是定义程序角色)。这只能解决第一个目标,但不能同时解决这两个问题。我正在寻找解决这两个问题的解决方案。 – krisy 2014-11-03 20:50:42

+0

@krisy你是什么意思的程序角色?我忘了提到你还需要在web.xml中定义安全约束来保护你的资源。您使用编程安全性仅隐藏不应显示的界面部分。 – Gas 2014-11-03 21:39:09