-1
我有一個應用程序有兩個域模型 組織和TicketQuestion。 身份驗證的用戶希望創建票證有一個組織屬性來解決 每個用戶允許一些組織是這樣的:使用spring安全性授權對象?
用戶1許可Organization1
用戶2許可Organization2
TicketController.java有救方法創建票證。 我有這個漏洞:用戶1可以調用具有Organization2的票(該用戶沒有權限)。 我正在使用Hibernate篩選器來獲取GET方法中的授權數據,但我不知道如何保護用戶想要的數據,並且沒有權限?
/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;
}
是的基本解決方案之一是。想象我的域模型有10個屬性,都有這個問題。我爲每個屬性寫入代碼加載?!另一個問題:我有添加更新和刪除方法,也許有超過這3種方法,另一個問題是,如果組織使用100域模型寫這個檢查代碼100次,我想在我的服務外解決問題。 –