[forward]Passage obligatoire refusé
Bonjour tout le monde.
Je suis en train de développer une appli. en MVC, et je voudrais protéger l'accès à mes JSP. Le but étant évidement d'empêcher mon utilisateur d'accéder directement à une page sans être passé avant par mon controleur.
Pour l'instant l'appli est déployé sous Apache 5.0.12. et voici la trace qu'il ma laisse.
Citation:
Envoyé par Apache 5
java.lang.IllegalStateException: "getOutputStream()" a déjà été appelé pour cette réponse
org.apache.coyote.tomcat5.CoyoteResponse.getWriter(CoyoteResponse.java:609)
org.apache.coyote.tomcat5.CoyoteResponseFacade.getWriter(CoyoteResponseFacade.java:190)
org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:165)
org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:158)
org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:234)
org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:160)
org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:120)
org.apache.jsp.displayResult_jsp._jspService(displayResult_jsp.java:93)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
Et voici le code mis en cause... (situé en toute première ligne de mon JSP)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| <% System.out.println("attribute(displayResult) "+request.getAttribute("displayResult"));
if (request.getAttribute("displayResult")==null
|| !request.getAttribute("displayResult").equals(new Boolean(true))) {
System.out.println("Redirection");
RequestDispatcher dispatcher = request.getRequestDispatcher("/index.html");
dispatcher.forward(request, response);
}else{
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head> |
Et dans ma console j'affiche à la fois le null "réglementaire" quand je viens sans être passé par mon controlleur, ET le Redirection qui me prouve que je passe bien sur mon forward.
Evidement, tout marche si je viens par le chemin normal.
Donc si quelqu'un voit la raison de mon erreur... je suis preneur.
Par avance, Merci.