I'll see if I have a little time later to set up a Wiki page describing this. If anyone beats me to it, all the better. :-) It's really no witchcraft.
On 22.02.2006 11:44:40 jelka.kosir wrote: > I have the FopTrunk version on my computer (JDK 1.3) and testing it for > issues I had in previous version FOP, so I can decide if we change fop > version. > > This (see history of this mail) was one of the issues I had (how to pass > to fop basic authentication for retrieving resources from application > server). > I solved this with workaround that David suggested (created a Servlet that > adds authentication and fetches image). > > Now I was wondering if this basic authentication can be done more elegant > in new version and how to do it. > Currently I'm testing from FOP command line and when I'm done testing I > will use FOP embedded in application. > > Jeremias wrote: > > you will have > > the ability to plug in a URIResolver to manually fetch an InputStream to > > a resource based on a URI.) > > I'm quite week at Java programming and am not sure how to "plug a > URIResolver". > I would need a few instructions how to do this. > I guess I have to implement an URIResolver for the resources that need > authentication and use the default one for resources that don't need > authentication. > Where do I create my class? Do I create it in my Java application that I > call FOP from and how do I convince FOP to use my implementation when > needed? > > I will be glad for any instructions/useful tips on my URIResolver. > > Thank you! > > Jelka > > In addition I add some responses to Jeremias: > > ------ > Jeremias wrote: > > On the other side it's strange that wget is able to get the image with > > the uid/pwd encoded in the URL and FOP is not. Maybe FOP 0.20.5 does > > something bad with the URL. It would be great if someone could check > > this case with FOP Trunk so we can fix any problems like that for the > > next release. > > I did try the "http://username:[EMAIL PROTECTED]/resource.gif" notation > with the new FOP Trunk and I'm getting error 401 code (Unauthorized). > This url works in wget. Should a bug report be submitted ? > This is the error message that displays when I run Fop Trunk from command > line: > > Error with opening URL '//user:[EMAIL PROTECTED]/image.gif': Server > retu > rned HTTP response code: 401 for URL: > http://user:[EMAIL PROTECTED]/image.gif > java.io.IOException: Server returned HTTP response code: 401 for URL: > http://user:[EMAIL PROTECTED]/image.gif > ------ > > I also tried this notation in my custom config file (I use custom fonts > because character set we use is Latin 2) I set > <base>http://user:[EMAIL PROTECTED]/</base> > and this produces Error 401 when I run FOP Trunk from command line (wget > is able to retrieve with this url). > > Error with opening URL 'arial.xml': Server returned HTTP response code: > 401 for > URL: http://user:[EMAIL PROTECTED]/arial.xml > java.io.IOException: Server returned HTTP response code: 401 for URL: > http://user:[EMAIL PROTECTED]/arial.xml > > Mismatch: page-sequence (http://www.w3.org/1999/XSL/Format) vs. root > (http://www > .w3.org/1999/XSL/Format) > Error with opening URL 'arial.xml': Server returned HTTP response code: > 401 for > URL: http://user:[EMAIL PROTECTED]/arial.xml > java.io.IOException: Server returned HTTP response code: 401 for URL: > http://user:[EMAIL PROTECTED]/arial.xml > > javax.xml.transform.TransformerException: java.lang.RuntimeException: > Cannot loa > d font: failed to create Source from metrics file arial.xml > Exception > javax.xml.transform.TransformerException: java.lang.RuntimeException: > Cannot loa > d font: failed to create Source from metrics file arial.xml > ------ > > > > > > > Jeremias Maerki <[EMAIL PROTECTED]> > 13.10.2005 16:49 > Please respond to > [email protected] > > > To > [email protected] > cc > > Subject > Re: how to pass to fop user and password needed for basic authentication > to get image resource from Notes database > > > > > > > BTW, the redesigned FOP will make things like that easier. You will have > the ability to plug in a URIResolver to manually fetch an InputStream to > a resource based on a URI. This will make work-arounds like David's > servlet unnecessary. > > On the other side it's strange that wget is able to get the image with > the uid/pwd encoded in the URL and FOP is not. Maybe FOP 0.20.5 does > something bad with the URL. It would be great if someone could check > this case with FOP Trunk so we can fix any problems like that for the > next release. > > On 13.10.2005 16:26:33 David Delbecq wrote: > > Then i guess your solution is to write a servlet which access files > > using the api and get credits token lik this: > > > > > http://domino.example.com/myServlet?doc=/0/A3402F5B583F538AC1257093004C41C8/$File/image.gif&user=someUser&pass=somePass > > > > > If image tag of .fo were to use the InputSource schem of xml document, > > you could have created an Inputsource which > > manage the authentification. Unfortunately, as i discovered some time > > before, fop does not use inputsource to load pictures. > > (really, it uses a simple URL()) > > I think this will be handled in next version, but if you followed this > > maling list, lots of things will change in next version, > > so it might not be availbe for a few time :) > > Ha yeah, you can also try to add your custom protocol to URL (like > > dominoContent://) but a mpretty sure you don't even want > > to try as it is jvm-wide modification :) > > > > [EMAIL PROTECTED] a écrit : > > > > > > > > Yes, I did try this notation and the error came up the same (Could not > > > load external SVG: ... error) > > > > > > If I try to use such url in a web browser for example, when first > > > requesting this url a "page not found" is displayed and all next > > > responses to this > > > same request retrieve an empty page (there is some html but the <body> > > > tag is empty so blank page is displayed). > > > > > > I also noticed that with using wget with this type of url, the image > > > is retrieved from the server correctly. > > > > > > Thank you David for the suggestion, I was kind of sad to notice that > > > this doesn't work as I thought it would. > > > > > > > > > > > > > > > *David Delbecq <[EMAIL PROTECTED]>* > > > > > > 13.10.2005 15:33 > > > Please respond to > > > [email protected] > > > > > > > > > > > > To > > > [email protected] > > > cc > > > > > > Subject > > > Re: how to pass to fop user and password needed for basic > > > authentication to get image resource from Notes database > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Did you try this kind of url? > > > > http://user:[EMAIL > PROTECTED]/database.nsf/0/A3402F5B583F538AC1257093004C41C8/$File/image.gif > > > > [EMAIL PROTECTED] a écrit : > > > > > > > > > > > I will describe my situation. > > > > > > > > I have an application server (Domino) and on it running a web > > > > application. > > > > > > > > On this web application users have a basic editor (uses xhtml) to > > > > input basic text/formats/tables and upload images that are included > in > > > > the document > > > > > > > > > > > > Images are uploaded in notes database and url is passed into this > > > > editor (xml source for this is standard html like <img > > > > > > > src=" > http://domino.example.com/database.nsf/0/A3402F5B583F538AC1257093004C41C8/$File/image.gif > " > > > > />) and I parse it like this: > > > > > > > > part of xsl file: > > > > . <xsl:template match="img"> > > > > <fo:block space-after="12pt"> > > > > <fo:external-graphic src="[EMAIL PROTECTED]"> > > > > > > > > <xsl:if test="@width"> > > > > <xsl:attribute > > > > name="width"><xsl:choose><xsl:when test="contains(@width, > > > > 'px')"><xsl:value-of > > > > select="@width"/></xsl:when><xsl:otherwise><xsl:value-of > > > > select="concat(@width, > > > > 'px')"/></xsl:otherwise></xsl:choose></xsl:attribute> > > > > </xsl:if> > > > > <xsl:if test="@height"> > > > > <xsl:attribute > > > > name="height"><xsl:choose><xsl:when test="contains(@height, > > > > 'px')"><xsl:value-of > > > > select="@height"/></xsl:when><xsl:otherwise><xsl:value-of > > > > select="concat(@height, > > > > 'px')"/></xsl:otherwise></xsl:choose></xsl:attribute> > > > > </xsl:if> > > > > </fo:external-graphic> > > > > </fo:block> > > > > </xsl:template> > > > > > > > > Users have a possibility to create pdf of created document from this > > > > application. All works fine - I generate xml on demand and transform > > > > it with xsl file that is prepared. > > > > > > > > The problem is when transformer fetches image from database I do not > > > > know how to pass username and password for authentication and the > > > > process that requests the image now gets a Login Page instead (html > > > > response) and when trying to include it into PDF an error that is > > > > printed in the log: > > > > > > > > [ERROR] Could not load external SVG: White spaces are required > between > > > > publicId and systemId. > > > > [ERROR] Error while creating area : No ImageReader for this type of > > > > image > > > > > > > ( > http://domino.example.com/database.nsf/0/A3402F5B583F538AC1257093004C41C8/$File/image.gif > ) > > > > > > > > > > > > So my question is: > > > > Is there a way to set username and password for fop to use when > > > > fetching image from publicly not accessible database resources? > > > > > > > > Thank you all for helping. > > > > > > > > Jelka Jeremias Maerki --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
