「レコード」などの単純なモデルがあるとします。
@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)
: つまり、管理者とオブジェクトを作成した人だけがオブジェクトを削除できます。宣言型セキュリティでこれらの両方を達成する方法がわかりません。この問題にアプローチする正しい方法は何ですか?