Struts. Solo peticiones POST.
Hola a tod@s:
Estoy haciendo una aplicacion con struts y mi cuestion es que yo quiero que todas las peticiones sean peticiones POST.
Un ejemplo:
Tengo este formulario:
<html:form action="comun.Login.do" method="POST" focus="usuario">
<p>
<c:out value="Usuario:"/>
<html:text property="usuario" size="16" maxlength="16" styleId="usuario"/>
</p>
<p>
<c:out value="Contraseña:"/>
<html:password property="password" size="16" maxlength="16" styleId="password"/>
</p>
<p>
<html:submit value="Conectar"/>
</p>
</html:form>
Todo funciona perfectamente, la peticion por POST la bien, pero si en la barra de navegacion del explorer ó firefox escribo "comun.Login.do?usuario=Alberto&password=1234" también lo hace y yo lo que quiero es que no se puedan escribir en el navegador los parámetros de los formularios ó parámetros ocultos que pueda pasar de una JSP a otra. Resumiendo, que no se acepten peticiones GET.
Espero haberme explicado bien.
Muchas gracias y un saludo.
Estoy haciendo una aplicacion con struts y mi cuestion es que yo quiero que todas las peticiones sean peticiones POST.
Un ejemplo:
Tengo este formulario:
<html:form action="comun.Login.do" method="POST" focus="usuario">
<p>
<c:out value="Usuario:"/>
<html:text property="usuario" size="16" maxlength="16" styleId="usuario"/>
</p>
<p>
<c:out value="Contraseña:"/>
<html:password property="password" size="16" maxlength="16" styleId="password"/>
</p>
<p>
<html:submit value="Conectar"/>
</p>
</html:form>
Todo funciona perfectamente, la peticion por POST la bien, pero si en la barra de navegacion del explorer ó firefox escribo "comun.Login.do?usuario=Alberto&password=1234" también lo hace y yo lo que quiero es que no se puedan escribir en el navegador los parámetros de los formularios ó parámetros ocultos que pueda pasar de una JSP a otra. Resumiendo, que no se acepten peticiones GET.
Espero haberme explicado bien.
Muchas gracias y un saludo.
¿comun.Login.do es un servlet?
Si es un servlet haz que solo tenga el metodo doPost() y no tenga ni el metodo doGet() ni tampoco service()
Si es un servlet haz que solo tenga el metodo doPost() y no tenga ni el metodo doGet() ni tampoco service()
Muy buena pregunta la tuya, voy con la respuesta:
Mira lo que debes de crear es un Filtro J2EE, este filtro se va a encargar de bloquear todas las peticiones GET antes de que lleguen al Servlet Front de Struts, y obviamente antes de que se atienda cualquier Action.
Los Filtros son muy usados para cuestiones de seguridad, checar si el usuario tiene sesion activa, con el fin de no repetir el código en los procesos de negocio, en tu caso Actions de Struts.
Este Filtro se mapea en el web.xml y el codigo que deberas de colocar en el filtro mas o menos deberÃa de ser el siguiente:
//request es del tipo HttpServletRequest
String method = request.getMethod();
System.out.println("Método: " + requestType.getMethod());
if (method.equalsIgnoreCase("GET")){
//colocas el codigo que quieras en caso de que la peticion sea GET
}
Saludos y espero que esto te sirva de ayuda!!!
Mira lo que debes de crear es un Filtro J2EE, este filtro se va a encargar de bloquear todas las peticiones GET antes de que lleguen al Servlet Front de Struts, y obviamente antes de que se atienda cualquier Action.
Los Filtros son muy usados para cuestiones de seguridad, checar si el usuario tiene sesion activa, con el fin de no repetir el código en los procesos de negocio, en tu caso Actions de Struts.
Este Filtro se mapea en el web.xml y el codigo que deberas de colocar en el filtro mas o menos deberÃa de ser el siguiente:
//request es del tipo HttpServletRequest
String method = request.getMethod();
System.out.println("Método: " + requestType.getMethod());
if (method.equalsIgnoreCase("GET")){
//colocas el codigo que quieras en caso de que la peticion sea GET
}
Saludos y espero que esto te sirva de ayuda!!!
