Salut à tous,
J'ai un petit souci avec l'utilisation de JGUARD. Je l'ai mis en place dans mon appli qui tourne sous Spring avec BDD Postgres. Je me suis fait une console d'administration basée sur l'exemple Struts livré avec JGuard.
Pour la gestion des users et des domains, pas de soucis. Par contre la gestion des principals marche pas. Quand je veux supprimer, à chaque fois la méthode "authenticationManager.deletePrincipal()" me retourne false, et mes rôles restent en base de données.
J'ai bien vu que les roles étaient gérés côté authorizationManager et authenticationManager. La méthode de l'authorizationManager supprime bien le rôle.
Voici mon code :
public ModelAndView deletePrincipal(HttpServletRequest request, HttpServletResponse response){
AuthorizationManager authorizationManager = (AuthorizationManager) request.getSession().getServletContext().getAttribute(SecurityConstants.AUTHORIZATION_MANAGER);
AuthenticationManager authenticationManager = (AuthenticationManager) request.getSession().getServletContext().getAttribute(SecurityConstants.AUTHENTICATION_MANAGER);
String principalName = (String) request.getParameter("principal");
try {
authorizationManager.deletePrincipal((new RolePrincipal(principalName)));
authenticationManager.deletePrincipal((new RolePrincipal(principalName)));
} catch (AuthorizationException e) {
e.printStackTrace();
} catch (AuthenticationException e) {
e.printStackTrace();
}
return this.listPrincipals(request, response);
}
Merci pour votre aide.
GrOpOaL
Partager