代码之家  ›  专栏  ›  技术社区  ›  Mr.Green

使用Java解析和检索策略服务器响应的有效方法

  •  0
  • Mr.Green  · 技术社区  · 6 年前

    我有一个策略服务器,可以在其中创建资源&角色。资源由基于角色定义的策略指导。例如,假设我们有以下资源 按钮1,按钮2,提交,表2 &角色,如 谷歌:NA:Admin,雅虎:CHN:Admin,谷歌:CHN:User,字母表:EU:Admin 等用户将通过提供用户名和密码登录策略服务器站点来注册角色。我正在从服务器获取每个用户的授权资源列表。对于用户名“greenUser”(作为向策略服务器API发出的POST请求的一部分发送的唯一参数),服务器的响应如下所示。

    {"permit":[
      "button1",
      "table2",
      "Role:Google:NA:Admin",
      "Submit"
    ]
    }
    

    要求是确定用户、地区、公司和;他可以访问的资源列表。 因此,我创建了一个与“角色”同名的资源,并限制了该特定角色在策略服务器中的访问权限。我创造了一个角色 “谷歌:NA:管理员” 并创建了一个策略来限制对角色的访问 “角色:谷歌:NA:管理员” 。目的是查找此资源作为响应的一部分,并确定用户所扮演的角色。 一个用户可能有多个角色。他可以是谷歌(NA地区)的管理员;字母表(欧盟地区)。

    从角色中确定地区和公司。我创建了一个JSON,如下所示:

    {
    "Roles" : [{
    "Google" : [{
    "NA" : ["Role:Google:NA:Admin", "Role:Google:NA:User"]},{
    "CHN" : ["Role:Google:CHN:Admin", "Role:Google:CHN:User"]}
    ]
    },
    {
    "Alphabet" : [{
    "NA" : ["Role:Alphabet:NA:Admin", "Role:Alphabet:NA:User"]},{
    "CHN" : ["Role:Alphabet:CHN:Admin", "Role:Alphabet:CHN:User"]}
    ]
    }
    }
    

    我创建了一个使用Java解析整个JSON的方法,如果值与返回的特定“Role”资源匹配,那么我将把键(例如:CHN)捕获为Region&外部JSON元素的键为“Company”。

    我想检查是否有更好的方法来确定角色、地区和;用户的公司。上面提到的JSON是我的想法。我很想知道除了JSON之外,是否还有更好的设计或方法。欢迎使用示例代码片段。

    抱歉发了这么长的帖子。我尽了最大的努力来获取完整的需求。 提前谢谢。

    1 回复  |  直到 6 年前
        1
  •  0
  •   auhuman    6 年前

    如果policyserver有一个API来获取给定用户的角色,我会使用它或创建一个API(如果可能的话)。如果所有的门都关闭了,添加角色作为资源将是我的最后一个计划。

    不清楚哪个系统生成公司国家/地区角色JSON。是策略服务器还是您的应用程序?如果是策略服务器,我将返回策略名称数组(getRoles API)。如果您的应用程序要返回这个JSON,我将与应用程序服务的消费者讨论它,并决定它是否满足他们的期望。如果没有使用者,我只会返回角色名称数组以保持简单