J'ai une application qui a deux domaine modèle Organisation et TicketQuestion. assermentée utilisateur veut créer un billet qui ont une propriété d'organisation pour résoudre ce chaque permis d'utilisateur à une organisation comme ceci:Autoriser l'objet en utilisant la sécurité de printemps?
User1 permis à Organisation1
Utilisateur2 permis à Organisation2
TicketController.java ont sauver méthode qui crée un ticket. J'ai cette vulnérabilité: User1 peut invoquer la méthode avec ticket qui ont Organization2 (cette dose n'a pas la permission). J'utilise le filtre Hibernate pour autoriser les données dans les méthodes GET mais je ne sais pas comment puis-je protéger les données que l'utilisateur veut conserver et ne pas avoir la permission?
/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;
}
oui l'une des solutions de base est celle-là. Imaginez que j'ai le modèle de domaine qui ont 10 propriétés qui ont tous ce problème. J'écris le code pour le chargement de chaque propriété?! un autre problème: j'ai ajouter la méthode de mise à jour et supprimer et peut-être avoir plus que cette méthode 3, un autre problème est que si l'organisation utilisée dans 100 domaine modèle écrit ce code 100 fois, je veux résoudre le problème en dehors de mon service. –