2010-02-19 27 views
6

Sto lavorando a un SpringSecurityFilter personalizzato per la mia applicazione Grails e sto provando a utilizzare la libreria di caricamento di comuni per elaborare la richiesta. Sono in grado di elaborare la richiesta nel filtro ma una volta arrivato al mio controller, nessuno dei valori è disponibile.Can ServletFileUpload.parseRequest() può essere chiamato una sola volta per richiesta?

È possibile elaborare HttpRequest solo una volta dalla libreria di upload? Sto indovinando che sta pulendo i file temporanei. C'è un modo per tenerli in giro in modo che possano essere elaborati di nuovo a livello di controller?

Ho bisogno di interrogare un parametro del modulo per la sicurezza (a causa del client non posso aggiungerlo alle intestazioni http) ma una volta ottenuto il valore, sembra cancellare la richiesta di ulteriore elaborazione.

+0

hi TGM, ho la stessa domanda ai suoi. Hai trovato la soluzione? –

+0

Non ancora. Ho provato a scrivere filtri di sicurezza personalizzati ma senza successo. Abbiamo aggiunto intestazioni per l'autenticazione normale e siamo andati con l'autenticazione di sessione per aggirare il problema per ora. Quando avrò tempo, ho intenzione di provare a usare Shiro o creare filtri di autenticazione personalizzati per i graal (che funzionano). Prova la rotta Filtri Grails se non sei legato a SpringSecurity. – ahanson

risposta

4

Sì. Una richiesta può essere analizzata solo una volta.

Ho visto questa risposta nella pagina delle FAQ di Apache per FileUpload.

Domanda: Perché parseRequest() non restituisce alcun elemento?

Risposta: ". Questo accade comunemente quando la richiesta è già stata analizzata, o trasformati in qualche altro modo Dal momento che il flusso di input è aleady stato consumato da quel processo in precedenza, non è più disponibile per l'analisi da Commons Upload di file."

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

Problemi correlati