我有一个策略服务器,可以在其中创建资源&角色。资源由基于角色定义的策略指导。例如,假设我们有以下资源
按钮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之外,是否还有更好的设计或方法。欢迎使用示例代码片段。
抱歉发了这么长的帖子。我尽了最大的努力来获取完整的需求。
提前谢谢。