Bonjour,
Voilà j'ai un petit souci assez frustrant. En fait, j'ai une classe abstraite "Role". Celle-ci a une fille "WebRole".
Elles me permettent d'attribuer des droits à des profils utilisateurs sur mon projet. Un WebRole correspondant à un droit précis sur la plate-forme web du projet.
Dans une de mes classes Action (je suis sous Struts), je récupère un Set appellé "superRoles". C'est la liste complète des WebRoles attribuables à un profil. A côté, j'ai la liste des WebRoles qui sont réellement à attribuer au profil. En toute logique, avant d'attribuer un role à un profil, je veux vérifier que le profil a bien le droit de le posséder.
Voici mon code:
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Set superRoles = superProfile.getRoles(); Set rolesSet = new HashSet(); Map.Entry e; for(Iterator i = form.getRolesListMap().entrySet().iterator(); i.hasNext();){ e = (Map.Entry) i.next(); if(e.getValue().equals(CHECKBOX_CHECKED)) { WebRole abc = new WebRole((String) e.getKey()); if(superRoles.contains(abc)) { rolesSet.add(abc); } } }
Dans ma classe Role, j'ai surchargé les méthodes equals et hashCode:
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public boolean equals(Role pRole) { if(this.getName().equals(pRole.getName())) return true; return false; } public int hashCode() { return this.getName().hashCode(); }
Alors hormis qu'il passe dans la méthode hashCode ben il utilise pas ma méthode equals et du coup m'envoie brouter mon herbe en me refusant tous les droits.
Pourtant le Name existe...
Si vos lumières y voit clair...
Merci d'avance!
Partager