私は2つのドメインモデル OrganizationとTicketQuestionを持つアプリケーションを持っています。 認証されたユーザー、このようないくつかの組織に、各ユーザーの許可証 ことを解決するために、組織の性質を持っているチケット作成したい:Organization2春のセキュリティを使用してオブジェクトを認証しますか?
TicketController.javaにOrganization1
User2の許可に
User1の許可証は、保存を持っていますチケットを作成するメソッド。 私はこの脆弱性があります:User1はOrganization2を持つチケットでメソッドを呼び出すことができます(これにはアクセス権がありません)。 GETメソッドで認証データにHibernateフィルタを使用していますが、ユーザーが永続化したいと思うデータを保護する方法を知っていません。
/ticket/save
{
id:-1,
organization:{
id:2,
title:'organization2' //not allowed this organization
}
}
@Entity
@Table(name = "core_organization_structure")
public class OrganizationStructure {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "title", nullable = false)
private String title;
}
@Entity
@Table(name = "core_Ticket")
public class Ticket {
..some prop
@ManyToOne
@JoinColumn(name = "org_id", nullable = false)
private OrganizationStructure org;
}
はい、基本的な解決策の1つはそれです。すべてのこの問題を持っている10のプロパティを持っているドメインモデルがあると想像してください。別の問題:私は、更新と削除の方法を追加し、多分この3つの方法よりも多くの問題がある場合、組織は100ドメインモデルでこのチェックコードを100回書くと、私は私のサービスの外で問題を解決したい。 –