rich:upload com jCIFS

79 views
Skip to first unread message

Fernando Boaglio

unread,
Sep 3, 2010, 8:51:47 AM9/3/10
to jav...@googlegroups.com

Ae galera, como vão?

Eu trabalho com o Sérgio ( http://serjaum.wordpress.com/ ) e queria perguntar uma coisa aqui nessa lista que ele elogia bastante.

No nosso sistema a gente usa o jCIFS (jcifs.samba.org) para buscar o usuário autenticado pelo Windows e fazer o logon automático.

Isso funciona que é uma beleza, mas eu comecei a ter problemas com o rich:upload, dava erro na transferência (se eu desligar o logon automático, o upload funciona! ).

Isso acontece só no IE, no FF funciona.

Infelizmente o jcifs ele altera o header do response , colocando tamanho zero (para o IE mandar uma nova request) e acaba dando problema.

Coloquei um IF no filtro de autenticação para tentar escapar disso:

        // se for upload, ignora o filtro
        if ( req.getContentType()!=null && req.getContentType().indexOf("multipart/form-data")>-1)
        {
             System.out.println("uploading file, skipping SSO ... "+req.getContentType());
             resp.setHeader("Authorization",null);
             resp.setHeader("WWW-Authenticate", null);
             chain.doFilter(req, resp);
             return;
        }



Aí ele até passa, mas quem reclama é o ajax4jsf:

09:41:14,048 INFO  [STDOUT] uploading file, skipping SSO ... multipart/form-data; boundary=----------Ij5GI3Ij5gL6GI3ei4cH2Ef1ae0ae0
09:41:18,080 ERROR [PhaseListenerManager] Exception in PhaseListener RESTORE_VIEW(1) beforePhase.
org.ajax4jsf.exception.FileUploadException: IO Error parsing multipart request
    at org.ajax4jsf.request.MultipartRequest.parseRequest(MultipartRequest.java:388)


E mais abaixo:

Caused by: java.io.IOException: Request prolog cannot be read
    at org.ajax4jsf.request.MultipartRequest.readProlog(MultipartRequest.java:333)
    at org.ajax4jsf.request.MultipartRequest.initialize(MultipartRequest.java:369)



Olhei os fontes do RichFaces e parece que realmente o tamanho do arquivo é afetado, pois o erro vem desse if em org.ajax4jsf.request.ByteSequenceMatcher :

        if (this.readLength == 0) {
            this.isEOF = true;
        }



Alguém já teve algum problema usando o rich:upload e o jcifs e poderia dar uma luz? =)


--
[]'s
Fernando Boaglio

Sérgio Fantin

unread,
Sep 3, 2010, 11:09:30 AM9/3/10
to jav...@googlegroups.com
Fala, Boaglio!

Seja bem vindo!

Abraços...

2010/9/3 Fernando Boaglio <boa...@gmail.com>

--
Você recebeu esta mensagem por que é membro do Google Group "Javasf".
http://groups.google.com/group/javasf
 
Conheça também:
- Grupo Java Brazil em http://groups.google.com/group/thejavabrazil



--
Sérgio Fantin
http://serjaum.wordpress.com

Fernando Boaglio

unread,
Sep 15, 2010, 12:41:20 PM9/15/10
to jav...@googlegroups.com
Só atualizando, acabei resolvendo o problema evitando a colisão dos filtros ajax4jsf e jcifs, ambos alteram o cabeçalho da requisição e não existe esquema que faça o upload funcionar...

Fica aí a lição: jCIFS e rich:upload não combinam!

[]'s
Fernando Boaglio

2010/9/3 Sérgio Fantin <sergio.l...@gmail.com>
Reply all
Reply to author
Forward
0 new messages