Bonjour à tous,
J'ai une question qui concerne Spring Security et plus particulièrement les Populator.
Dans mon site, j'ai un paramètre, issu d'un select (ou qui prend une valeur par défaut si non settée), qu'on appellera "monparam" dans la suite.
Je vais chercher les rôles de mon utilisateur en fonction de "monparam". Par exemple, l'utilisateur "jean dupont" possède les rôles USER et ADMIN quand "monparam" vaut "42" et seulement le rôle USER quand "monparam" vaut "23". Evidemment "42" et "23", ainsi que les rôles associés, sont enregistrés en base et correspondent à mon métier.
En gros mon Populator ressemble à ça :De là, je me pose deux questions :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public class MonPopulator implements LdapAuthoritiesPopulator { @Override public final Collection<? extends GrantedAuthority> getGrantedAuthorities(DirContextOperations userData, String username) { final String monparam = chargerQuelquePart(...); final List<RoleEnum> roles = chargerEnBase(username, monparam); } ...
1) Quelle est la bonne pratique, pour avoir "monparam" de dispo ici ?
2) Quand je change de valeur dans le select, ça renvoie sur home.jsf, et ça doit donc changer/recharger les rôles associés. Mais comment faire ?
Pour le premier point, j'avais pensé créer un filtre (web.xml) ou le stocker quelque part, ou même faire quelque chose dans le security-app-context.xml mais je ne sais pas trop quoi. Je bute là-dessus sans avoir de bonne idée...
Merci d'avance pour l'aide.
Partager