【问题标题】:Application server role-based access controll基于应用服务器角色的访问控制
【发布时间】:2014-11-03 18:26:34
【问题描述】:

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

  • 如果没有正确用户组的用户尝试打开受限 URL,则显示错误页面
  • 用户应该会看到一个菜单,其中列出了所有可供他使用的页面

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

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

谢谢, 克丽丝

【问题讨论】:

    标签: java websphere-8 application-server


    【解决方案1】:

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

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

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

    server.xml 通过Application binding 元素中,您仅提供从应用程序角色到注册表中定义的组的映射。根据注册表类型,您将能够向给定组添加/删除用户,例如通过server.xml 或 LDAP 管理工具(如果是 LDAP 注册表)授予或拒绝他们的权利。

    【讨论】:

    • 是的,这是保护代码的编程方式(相反的方式是定义程序角色)。这仅解决了第一个目标,但不能同时解决这两个目标。我正在寻找解决这两个问题的解决方案。
    • @krisy 你所说的程序角色是什么意思?我忘了提到您还需要在 web.xml 中定义安全约束来保护您的资源。您使用编程安全性仅隐藏不应可见的界面部分。
    猜你喜欢
    • 2010-09-11
    • 2013-08-28
    • 2018-02-27
    • 2013-05-08
    • 1970-01-01
    • 1970-01-01
    • 2015-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多