2010-02-19 23 views
6

Estoy trabajando en un SpringSecurityFilter personalizado para mi aplicación Grails y estoy tratando de usar la biblioteca de carga de commons para procesar la solicitud. Puedo procesar la solicitud en el filtro, pero una vez que llega a mi controlador, ninguno de los valores está disponible.¿Se puede llamar a ServletFileUpload.parseRequest() solo una vez por solicitud?

¿Puede el HttpRequest solo ser procesado una vez por la biblioteca de carga? Supongo que está limpiando los archivos temporales. ¿Hay alguna forma de mantenerlos cerca para que puedan procesarse nuevamente a nivel de controlador?

Necesito interrogar a un parámetro de formulario para la seguridad (debido a que el cliente no puedo agregarlo a los encabezados http) pero una vez que obtengo el valor, parece borrar la solicitud para un procesamiento posterior.

+0

hi TGM, tengo la misma pregunta que los suyos. ¿Encontraste la solución? –

+0

Aún no. Intenté escribir filtros de seguridad personalizados pero no tuve éxito. Agregamos encabezados para la autenticación normal y fuimos con la autenticación de sesión para solucionar el problema por el momento. Cuando tenga el tiempo, planeo intentar usar Shiro en su lugar o crear filtros de autenticación grails personalizados (que funcionen). Pruebe la ruta de Grails Filters si no está vinculado a SpringSecurity. – ahanson

Respuesta

4

Sí. Una solicitud solo se puede analizar una vez.

Vi esta respuesta en la página de Preguntas Frecuentes de Apache para FileUpload.

Pregunta: ¿Por qué parseRequest() no devuelve ningún artículo?

respuesta: ". Este más comúnmente ocurre cuando la solicitud ya se ha analizado, o procesados ​​de alguna otra manera Puesto que el flujo de entrada aleady ha sido consumido por el proceso anterior, que ya no está disponible para el análisis de los Comunes Subir archivo."

Referencia: http://commons.apache.org/fileupload/faq.html

Cuestiones relacionadas