-
sécuriser un selectItems
Bonjour,
Je suis entrain de développer une application en utilisant JSF. j'ai une liste déroulante à mettre dans une page en utilisant le composant selectItems. les éléments à séléctionner dans la liste sont des objets. donc j'aurai besoin soit d'utiliser un converter ou un Map. Le soucis c'est que je met l'identifiant de l'objet comme valeur du selectItems, donc je veux m'assurer que le converter n’accédera qu'aux élément de l'utilisateur courant même s'il arrive à envoyer un identifiant qui n'existe pas dans la liste (par soucis de la sécurité).
Actuellement à chaque accès à la BD, j'ajoute une condition sur l'appartenance de l'objet au client courant. C'est pénalisant en terme de performance mais je suis ouvert à vos proposition concernant ce point.
Merci d'avance.
-
Avant de transférer la valeur dans le bean, JSF va toujours vérifie que la valeur que le converter à retourner correspond à une des valeur du selecItems. Si pas elle sera refusée
-
Cette fonction est native. Pas besoin d'ajouter quelque chose dans la déclaration selecItems?
Si c'est le cas donc pas besoin d'ajouter une vérification au niveau de BD.
Merci beaucoup
-
oui, le seul truc qui "pourrait" t'ennuyer c'est si se te pose un problème que le converter retourne une valeur qui n'est pas accessible à l'utilisateur (genre il passe par un EJB et ça lance des exceptions de sécurité à tout va quand tu le fais). Mais à part ça, il est impossible que le bean recoive une valeur qui n'est pas dans le selectItems.
Atttention cependant, ca ne dispense pas de vérifier les données avant leur stockage. Il existe des moyen de contourner les "required=true" de JSF et l'api JSF de validation n'a jamais eu pour but de servir d'outil de securité ;)