基于角色还是购物车风格的Java bean绑定?

时间:2009-03-31 16:20:33

标签: java jaxb

我有一个POJO,我希望将其作为XML从Web服务公开,最好是使用JAX-B。

需要在XML中公开的字段取决于发出请求的用户类型。例如,我们为HumanResources和Finance用户提供了一个角色。用户可能被定义为:

@XmlRootElement

公共类用户{

@XmlElement public String someHumanResourceData;

@XmlElement public String someFinanceData;

}

我希望人力资源用户能够查看人力资源数据,而财务部门则可以查看财务数据,但仅此而已。人力资源部门不应该看到财务数据。

有关于如何做到这一点的推荐方法吗?我可以用什么搜索词在网上查找更多信息?

一些我觉得不具吸引力的想法: 1)我可以使用子类来公开仅具有相关数据的FinanceUser和HumanResourceUser,以及具有共享数据的父User。然而,这是脆弱的,可能只是一个小例子,我觉得我需要一个更灵活,更具成分性的生产方法。 2)同事推荐“购物车”方法,其中客户端请求每个请求他/她想要的字段。我没有找到一种标准的方法来做这个,甚至没有找到其他许多做过这种方法的人。这对我来说听起来真的是本土化和劳动密集型。

还有其他想法吗?

1 个答案:

答案 0 :(得分:0)

为什么不直接检查用户在服务器端Web服务实现中的角色?

您的网络服务界面是什么?

public interface DarcysWebService {
    public HumanResourceResponse getHumanResourceData(Authentication a, HumanResourceRequest req);
    public FinanceResponse getFinanceData(Authentication a, FinanceRequest req);
}

然后,我会根据您的用户数据库(uuid,用户名,密码,角色)检查提供的身份验证数据(用户名,密码),然后使用该角色确定响应是否为“错误 - 您不要” “没有访问权限”或实际使用请求的数据填充响应中的数据字段/对象。