Je donne aux utilisateurs une URL spéciale avec une clé d'accès. les utilisateurs accédant à la page publique via cette URL spéciale devraient être en mesure de voir des données supplémentaires par rapport au simple utilisateur anonyme.Sécurité Acegi: Comment ajouter un autre GrantedAuthority à l'authentification à l'utilisateur anonyme
je veux donner un rôle supplémentaire à l'utilisateur anonyme en fonction des paramètres fournis à la demande afin que je puisse faire quelque chose comme ça dans mon modèle:
<@sec.authorize ifAnyGranted="ROLE_ADMIN, ROLE_USER, ROLE_INVITED_VISITOR">
...some additional stuff for invited user to see
</@sec.authorize>
actuellement je suis mise en œuvre OncePerRequestfilter
de printemps:
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws ServletException, IOException {
if (null != request.getParameter("accessKey")) {
if(isValid(request.getParameter("accessKey"))) {
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
//how do i add additional roles to authenticated (potentially anonymous) user?
}
}
}
nice one! Je l'ai moi-même résolu en créant une nouvelle AnonymousAuthenticationToken avec des rôles supplémentaires, mais c'est beaucoup plus élégant. Merci – miceuz