0

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

需要在 XML 中公开的字段取决于发出请求的用户类型。例如,我们有一个人力资源和财务用户的角色。用户可能被定义为:

@XmlRootElement

公共类用户{

@XmlElement public String someHumanResourceData;

@XmlElement public String someFinanceData;

}

我希望 HR 用户可以看到 HR 数据,而 Finance 可以看到 Finance 数据,但仅此而已。HR 不应查看财务数据。

有没有推荐的方法来做到这一点?我可以使用哪些搜索词在 Web 上查找更多信息?

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

还有其他想法吗?

4

1 回答 1

0

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

你的网络服务接口是什么?

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

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

于 2009-03-31T16:32:00.690 回答