Hi Patricia,

Did you start coding from our last release? I recommend you to try our
latest code if not:
http://code.google.com/p/google-apps-sso-sample/source/browse/trunk/java/samlsource/src/servlets/ProcessResponseServlet.java

Also, there are few post in this thread, about a similar issue:
http://forums.sun.com/thread.jspa?messageID=616929

Cheers,
Julian

On Sep 8, 5:21 pm, "Patricia Goldweic" <[EMAIL PROTECTED]>
wrote:
> Hi again Julian,
> Unfortunately this is still happening (it happened after my 10th attempt).
> For more info, the exception is thrown during the call to 'read'. Here is
> the backtrace:
> ----------------------------------------------------------------------------
> -----
> java.io.EOFException: Unexpected end of ZLIB input stream
>         at
> java.util.zip.InflaterInputStream.fill(InflaterInputStream.java:223)
>         at
> java.util.zip.InflaterInputStream.read(InflaterInputStream.java:141)
>         at java.io.FilterInputStream.read(FilterInputStream.java:90)
>         at
> edu.northwestern.at.gint.servlets.ProcessSAMLResponseServlet.inflate(Process
> SAMLResponseServlet.java:248)
>         at
> edu.northwestern.at.gint.servlets.ProcessSAMLResponseServlet.decodeAuthnRequ
> estXML(ProcessSAMLResponseServlet.java:210)
>         at
> edu.northwestern.at.gint.servlets.ProcessSAMLResponseServlet.processRequest(
> ProcessSAMLResponseServlet.java:109)
>         at
> edu.northwestern.at.gint.servlets.ProcessSAMLResponseServlet.doGet(ProcessSA
> MLResponseServlet.java:68)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
> FilterChain.java:290)
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
> ain.java:206)
> ...
> ----------------------------------------------------------------------------
> --------
>
> Thanks again for any help on this,
> -Patricia
>
> Patricia Goldweic
> [EMAIL PROTECTED]
>
> > -----Original Message-----
> > From: [email protected]
> > [mailto:[EMAIL PROTECTED] On Behalf Of
> > Julian (Google)
> > Sent: Monday, September 08, 2008 10:38 AM
> > To: Google Apps APIs
> > Subject: [google-apps-apis] Re: Java SSO intermittent problem
>
> > Hi Patricia,
>
> > I think you may need to Flush the stream to finish any buffered
> > output:
>
> >     while ((count = decompressorStream.read(buf)) != -1) {
> >         out.write(buf, 0, count);
> >     }
> >     out.flush();
> >     return out.toByteArray();
>
> > Please let me know if this solves the issue.
>
> > Thanks,
> > Julian.
>
> > On Sep 5, 6:52 pm, "Patricia Goldweic" <[EMAIL PROTECTED]>
> > wrote:
> > > Hi,
> > > I just realized that I forgot to include part of the
> > relevant code of
> > > my implementation (the definition of 'inflate').  Once again, I'll
> > > very much appreciate any help with this.
> > > -Patricia
>
> > > Here it goes:
>
> > > ===================================================================
> > > private static byte[] inflate(byte[] bytes, boolean nowrap)
>
> > > throws IOException {
>
> > >     Inflater decompressor = null;
>
> > >     InflaterInputStream decompressorStream = null;
>
> > >     ByteArrayOutputStream out = new ByteArrayOutputStream();
>
> > >     try {
>
> > >     decompressor = new Inflater(nowrap);
>
> > >     decompressorStream = new InflaterInputStream(new
> > > ByteArrayInputStream(bytes), decompressor);
>
> > >     byte[] buf = new byte[1024];
>
> > >     int count;
>
> > >     while ((count = decompressorStream.read(buf)) != -1) {
>
> > >         out.write(buf, 0, count);
>
> > >     }
>
> > >     return out.toByteArray();
>
> > >     } finally {
>
> > >         if (decompressor != null) decompressor.end();
>
> > >         try {
>
> > >             if (decompressorStream != null)
> > > decompressorStream.close();
>
> > >          } catch (IOException ioe) {
>
> > >             /*ignore*/
>
> > >          }
>
> > >          try {
>
> > >               if (out != null) out.close();
>
> > >          } catch (IOException ioe) {
>
> > >             /*ignore*/
>
> > >          }
>
> > >         }
>
> > > }
>
> > ======================================================================
> > > ======
> > > =====================
>
> > > Patricia Goldweic
> > > [EMAIL PROTECTED]
>
> > >   _____
>
> > > From: [email protected]
> > > [mailto:[EMAIL PROTECTED] On Behalf Of Patricia
> > > Goldweic
> > > Sent: Thursday, September 04, 2008 4:40 PM
> > > To: [email protected]
> > > Subject: [google-apps-apis] Java SSO intermittent problem
>
> > > Hi,
> > > My SSO java code started failing intermittently with an
> > exception of
> > > the type 'Unexpected end of ZLIB input stream'  when
> > decoding the SAML request.
> > > Has anybody gone through this before?
> > > Here is my code for decoding, based on the original reference
> > > implementation, and somewhat modified based on suggestions in this
> > > list from some time ago (by Nate) as to how to avoid intermittent
> > > exceptions related to buffer size:
>
> > ======================================================================
> > > =
>
> > > private String decodeAuthnRequestXML(String
> > encodedRequestXmlString)
> > > throws SamlException {
>
> > >     String uncompressed = null;
>
> > >     try {
>
> > >     // URL decode
>
> > >     // No need to URL decode: auto decoded by
> > request.getParameter()
> > > method
>
> > >     // Base64 decode
>
> > >     Base64 base64Decoder = new Base64();
>
> > >     byte[] xmlBytes = encodedRequestXmlString.getBytes("UTF-8");
>
> > >     byte[] base64DecodedByteArray = base64Decoder.decode(xmlBytes);
>
> > >     // Uncompress the AuthnRequest data using a stream
> > decompressor,
> > > as suggested by Nate ( Google Apps Api's group)
>
> > >     try {
>
> > >     uncompressed = new
> > String(inflate(base64DecodedByteArray, true));
>
> > >     } catch (ZipException e) {
>
> > >     uncompressed = new
> > String(inflate(base64DecodedByteArray, false));
>
> > >     }
>
> > >     } catch (UnsupportedEncodingException e) {
>
> > >     e.printStackTrace();
>
> > >     throw new SamlException("Error decoding AuthnRequest: " +
>
> > >     "Check decoding scheme - " + e.getMessage());
>
> > >     } catch (Exception e) {
>
> > >     e.printStackTrace();
>
> > >     throw new SamlException("Error decoding AuthnRequest: " +
>
> > >     "Check decoding scheme - " + e.getMessage());
>
> > >     }
>
> > >     return uncompressed;
>
> > > }
>
> > ======================================================================
> > > ======
> > > ======================
>
> > > I'll appreciate any ideas/suggestions you may have. Thanks,
>
> > > -Patricia
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Apps APIs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-apps-apis?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to