我有一个POJO,我希望将其作为XML从Web服务公开,最好是使用JAX-B。
需要在XML中公开的字段取决于发出请求的用户类型。例如,我们为HumanResources和Finance用户提供了一个角色。用户可能被定义为:
@XmlRootElement
公共类用户{
@XmlElement public String someHumanResourceData;
@XmlElement public String someFinanceData;
}
我希望人力资源用户能够查看人力资源数据,而财务部门则可以查看财务数据,但仅此而已。人力资源部门不应该看到财务数据。
有关于如何做到这一点的推荐方法吗?我可以用什么搜索词在网上查找更多信息?
一些我觉得不具吸引力的想法: 1)我可以使用子类来公开仅具有相关数据的FinanceUser和HumanResourceUser,以及具有共享数据的父User。然而,这是脆弱的,可能只是一个小例子,我觉得我需要一个更灵活,更具成分性的生产方法。 2)同事推荐“购物车”方法,其中客户端请求每个请求他/她想要的字段。我没有找到一种标准的方法来做这个,甚至没有找到其他许多做过这种方法的人。这对我来说听起来真的是本土化和劳动密集型。
还有其他想法吗?
答案 0 :(得分:0)
为什么不直接检查用户在服务器端Web服务实现中的角色?
您的网络服务界面是什么?
public interface DarcysWebService {
public HumanResourceResponse getHumanResourceData(Authentication a, HumanResourceRequest req);
public FinanceResponse getFinanceData(Authentication a, FinanceRequest req);
}
然后,我会根据您的用户数据库(uuid,用户名,密码,角色)检查提供的身份验证数据(用户名,密码),然后使用该角色确定响应是否为“错误 - 您不要” “没有访问权限”或实际使用请求的数据填充响应中的数据字段/对象。