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
	
	| 12
 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  
	
	| 12
 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