5

estoy usando filtro de Tuckey URLRewrite tiene una de sus reglas de la siguiente manera:filtro URLRewrite que no trabajan con forma de varias partes

<rule> 
    <name> Proxy URL with jession ID's </name> 
    <note> 

    </note> 
    <condition type="parameter" name="ParamName">[\p{ASCII}]+</condition> 
    <from>^/([^?]*)\.htm(.*)$</from> 
    <to type="proxy">%{request-url};jsessionid=%{parameter:ParamName}$2</to> 
</rule> 

El problema surge tan pronto como se agrego enctype="multipart/form-data" a mi forma (que utiliza el método POST por cierto) . El filtro no puede reescribir la url.

¿Alguna idea de cómo solucionar este problema?

+0

¿Qué tipo de error está recibiendo? – Kraylog

+0

de la expresión regular no coincide y la regla de reescritura no funciona –

+0

¿Su problema es que no puede recuperar los campos de campos de entrada a través de POST? – kamaci

Respuesta

1

Si puede cambiar el origen de la aplicación, puede modificarla para que pueda usar el método de "parámetro" para extraer el JSESSIONID. De forma predeterminada (al menos en Tomcat), el JSESSIONID no se pasará en la publicación del formulario, pero puede modificarlo para incluirlo. Por ejemplo, una página JSP podría tener este aspecto:

<form action="index.jsp" method="post"> 
    <input type="hidden" name="JSESSIONID" value="${pageContext.session.id}"/> 
    <input type="submit"/> 
</form> 

Alternativamente, usted podría tratar de buscar el JSESSIONID de la cookie de sesión utilizando una condición diferente. No he probado la siguiente, pero imaginar algo como que podría funcionar para usted:

<rule> 
    <name>Proxy URL with jsession ID's</name> 
    <note></note> 
    <condition type="cookie" name="JSESSIONID"/> 
    <from>^/([^?]*)\.htm(.*)$</from> 
    <to type="proxy">%{request-url};jsessionid=%{cookie:JSESSIONID}$2</to> 
</rule> 

Hay otras condiciones que puede utilizar potencialmente para comprobar si el identificador de sesión válido (-sesión solicitada-id-válida) originado a partir de una cookie (request-session-id-from-cookie) u originado desde la URL de la acción posterior (requested-session-id-from-url).

no estoy seguro de qué versión de UrlRewriteFilter está utilizando, pero si nos fijamos en el "permanentemente las URL de redireccionamiento de entrada que contiene jsessionid." ejemplo en la siguiente URL se verá que la JSESSIONID no es un parámetro como otra Los parámetros POST/GET son.

http://urlrewritefilter.googlecode.com/svn/trunk/src/doc/manual/3.2/guide.html

puedo recomendar encarecidamente utilizar el Firefox/Firebug juntos para examinar su solicitud POST y cabeceras para que pueda obtener una idea de exactamente lo que se está pasando. (Estoy seguro de que hay otras herramientas similares que también lo hacen, Fiddler 2, etc.).

Cuestiones relacionadas