假设我有一个简单的模型,例如“记录”:
@Model
public class Record {
private Principal owner; // presume getter/setters as well
}
然后我想要一个简单的 EJB 来控制创建和删除记录。为了争论,我们只担心删除:
@EJB
@Named
@Stateless
public class RecordMgr {
@PersistenceContext private EntityManager em;
public void delete(Record r) {
em.remove(r);
}
}
我想限制RecordMgr#delete(Record r)
对管理员和所有者的访问:换句话说,管理员和创建对象的人,只有他们才能删除它。我不知道如何通过声明性安全性来完成这两项工作。解决这个问题的正确方法是什么?