Bonjour,
j'ai une application spring démarrée avec un WebContext. Parmis les beans request scope que je dois initialiser, il y en a un qui a une propriété String qui doit correspondre à l'utilisateur courant. Hors je n'arrive pas à trouver comment initialiser ce bean proprement. J'essaie d'avoir un truc du genre
Problème, que mettre à la place de ???, je ne trouve pas doc dans spring ou autre sur comment en expression language accéder à l'information dont j'ai besoin, un truc comme ${request.userPrincipal.name}. Pour le moment je suis obligé de me tapper cette moche factory:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <bean class="company.SecurityContext" id="userSecurityContext" scope="request" p:user="????" > <aop:scoped-proxy /> </bean>
mais j'aimerais éviter d'amener cette logique dans le code, d'autant que j'ai d'autres propriété à initialiser depuis des fichier properties, ça pourrait vite devenir inutilement compliqué.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SecurityContext sc = new SecurityContext(); Principal principal = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest().getUserPrincipal(); if (principal!=null) sc.setUser(principal.getName()); return sc;
Partager