Bonjour,
J'aimerais faire un site internet avec du html/angularJS en front-end et du java en back-end (services REST).
Je voudrais gérer une authentification pour que seuls les utilisateurs habilités puissent utiliser leurs services correspondants. Quand j'avais fais du PHP on utilisait des variables de session qui était détruites quand le navigateur était fermé mais je ne sais pas comment faire en java. En gros il faudrait ceci:
- L'utilisateur s'authentifie (cela initialiserait une session)
- L'utilisateur appelle des services REST (controle de ses droits avec la session pour vérifier qu'il peut l'appeler).
J'ai vu qu'avec Tomcat on a des sessions.
On peut tester si une session existe avec un code comme ceci dans un filtre (classe qui implémente Filter):
Et en déclarant le filtre dans le web.xml.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public void doFilter (ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException { if (((HttpServletRequest)request).getSession(true).getAttribute("utilisateur.valide" )!=null) { chain.doFilter(request, response); } else { ((HttpServletResponse)response).sendRedirect("/connexion.jsp" ); } }
Ensuite dans le code java on peut récupérer la session avec:
Est-on obligé de passer par une JSP forcément pour pouvoir manipuler la session dans la page car de ce que j'ai compris la session n'est que côté serveur? (par exemple si j'y stocke le nom utilisateur pour ensuite l'afficher sur toutes les pages).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 HttpSession session = request.getSession();
La session sera accessible ensuite pour chaque service REST pour tester les droits de l'utilisateur que je compte mettre dedans?
Je vous remercie d'avance.
Partager