Bonjour j'ai lu le faq struts pour la gestion des sessions et j'ai codé une classe TestRequestProcessor qui hérite RequestProcessor.voici le code de la classe
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| package org.etafat;
import org.apache.struts.action.RequestProcessor;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionForward;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.servlet.ServletException;
/*
* @author Administrateur
*/
public class TestRequestProcessor extends RequestProcessor {
/** Creates a new instance of TestRequestProcessor */
public TestRequestProcessor() {
}
// On verifie si l'utilsateur est bien connecté
protected boolean isUserConnected(HttpServletRequest request) {
String user=null;
if (request != null) {
HttpSession session = request.getSession(false);
if (session != null) {
user = (String) session.getAttribute("login");
}
return user != null;
}
return false;
}
// On vérifie si la session a expirée : la session expire si l'id de la session n'est pas valide
protected boolean isSessionValid(HttpServletRequest request)
throws ServletException {
if (request != null) {
return request.isRequestedSessionIdValid();
}
return false;
}
protected boolean processRoles(HttpServletRequest request, HttpServletResponse response, ActionMapping mapping)
throws java.io.IOException, javax.servlet.ServletException {
ActionMessages messages = new ActionMessages();
if (isSessionValid(request))
{
if (isUserConnected(request))
{
return true;
} else
{
messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("erreurs.connection.required"));
}
} else
{
messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("erreurs.session.expired"));
}
// rediriger vers une page d'erreur
request.getRequestDispatcher ("/error.jsp").forward(request,response);
return false;
}
} |
et puis j'ai mis dans le fichier struts-config.xml
1 2 3
| <controller>
<set-property property="processorClass" value="org.etafat.TestRequestProcessor"/>
</controller> |
et puis j'ai essayé
<controller processorClass="org.etafat.TestRequestProcessor"/>
et dans les deux cas ça me génére l'erreur Servlet action n'est pas disponible.
donc l'erreur vient du fichier struts-config.xml.
Je demande une solution car je veux gérer la session des utilisateurs.
Partager