accéder à l'utilisateur courant dans un WebContext
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
Code:
1 2 3 4
| <bean class="company.SecurityContext" id="userSecurityContext"
scope="request" p:user="????" >
<aop:scoped-proxy />
</bean> |
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:
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; |
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é.