Re: fo:external-graphic problem when using HTTPS - EntityResolver?
I have a weird and crazy idea that may help you Why don't you install a local apache server with mod_proxy. You can configure mod_proxy so that it can tunnel into https from your http connection. 1) It's very fast, all my browsing is through a proxy server 2) You can secure your local apache so that it would only allow requests from localhost 3) It solves your problem by allowing you to make a request via http to get your https resource. I am sorry if you find my suggestion ridiculous, but sometimes ridiculous ideas such as this one can save a lot of heartache and effort. I guarantee it will work. At 02:51 PM 11/19/2002 +0200, Johan Åbrandt wrote: Hi, I have the following external graphic declaration in a XML file: fo:external-graphic src=url('{$base-url}/images/logo.jpg') height=30pt width=170pt/ I render it to a servlet outputstream using: Driver driver; driver = new Driver( new InputSource( reader ), out ); driver.setRenderer( Driver.RENDER_PDF ); driver.run(); This works just fine when having the server configured for HTTP but when using HTTPS, it fails with error: Error while creating area : Error with image URL: unknown certificate and no base directory is specified I think this is because I am using a own generated certificate and not a real certificate from f ex Verisign. I know that I can either create my own SecurityManager (effectively disabling security), or use a real certificate. I would however like to circumvent all such hazzles and retrieve the image in some other means instead, intially I tried to use a custom EntityResolver, but I doesnt seem like it is used for image url resolution: i.e. driver = new Driver( new InputSource( reader ), out ); driver.setRenderer( Driver.RENDER_PDF ); XMLReader xmlReader = XMLReaderFactory.createXMLReader(); xmlReader.setEntityResolver( new CustomEntityResolver() ); driver.setXMLReader( xmlReader ); driver.run(); Does anyone have any tips how to get the EntityResolver approach to work, or know any other way to achieve something similar. Best regards - Johan -- Johan Åbrandt Technical Project Manager (Tekninen projektipäällikkö) Tel. +358 9 6817 3342 Mobile. +358 40 848 8068 [EMAIL PROTECTED] Profit Software Oy Meritullinkatu 11 C 00170 Helsinki, Finland __ This message and its attachments have been found clean from known viruses with three different antivirus programs. __ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
fo:external-graphic problem when using HTTPS - EntityResolver?
Hi, I have the following external graphic declaration in a XML file: fo:external-graphic src=url('{$base-url}/images/logo.jpg') height=30pt width=170pt/ I render it to a servlet outputstream using: Driver driver; driver = new Driver( new InputSource( reader ), out ); driver.setRenderer( Driver.RENDER_PDF ); driver.run(); This works just fine when having the server configured for HTTP but when using HTTPS, it fails with error: Error while creating area : Error with image URL: unknown certificate and no base directory is specified I think this is because I am using a own generated certificate and not a real certificate from f ex Verisign. I know that I can either create my own SecurityManager (effectively disabling security), or use a real certificate. I would however like to circumvent all such hazzles and retrieve the image in some other means instead, intially I tried to use a custom EntityResolver, but I doesnt seem like it is used for image url resolution: i.e. driver = new Driver( new InputSource( reader ), out ); driver.setRenderer( Driver.RENDER_PDF ); XMLReader xmlReader = XMLReaderFactory.createXMLReader(); xmlReader.setEntityResolver( new CustomEntityResolver() ); driver.setXMLReader( xmlReader ); driver.run(); Does anyone have any tips how to get the EntityResolver approach to work, or know any other way to achieve something similar. Best regards - Johan -- Johan Åbrandt Technical Project Manager (Tekninen projektipäällikkö) Tel. +358 9 6817 3342 Mobile. +358 40 848 8068 [EMAIL PROTECTED] Profit Software Oy Meritullinkatu 11 C 00170 Helsinki, Finland __ This message and its attachments have been found clean from known viruses with three different antivirus programs. __
Re: fo:external-graphic problem when using HTTPS - EntityResolver?
Currently there's no possibility to set or use an EntityResolver (or similar) but it's on the todo list. In the meantime you could try to set the baseURL in Java code like this: Configuration.put(baseDir, https://myserver/somedir;); But please be aware that this currently only works in the CVS version of FOP (branch 'fop-0_20_2-maintain'). The current release only support local directories, no URLs. This will be in the upcoming 0.20.5 release. On 19.11.2002 13:51:55 Johan Åbrandt wrote: Hi, I have the following external graphic declaration in a XML file: fo:external-graphic src=url('{$base-url}/images/logo.jpg') height=30pt width=170pt/ I render it to a servlet outputstream using: Driver driver; driver = new Driver( new InputSource( reader ), out ); driver.setRenderer( Driver.RENDER_PDF ); driver.run(); This works just fine when having the server configured for HTTP but when using HTTPS, it fails with error: Error while creating area : Error with image URL: unknown certificate and no base directory is specified I think this is because I am using a own generated certificate and not a real certificate from f ex Verisign. I know that I can either create my own SecurityManager (effectively disabling security), or use a real certificate. I would however like to circumvent all such hazzles and retrieve the image in some other means instead, intially I tried to use a custom EntityResolver, but I doesnt seem like it is used for image url resolution: i.e. driver = new Driver( new InputSource( reader ), out ); driver.setRenderer( Driver.RENDER_PDF ); XMLReader xmlReader = XMLReaderFactory.createXMLReader(); xmlReader.setEntityResolver( new CustomEntityResolver() ); driver.setXMLReader( xmlReader ); driver.run(); Does anyone have any tips how to get the EntityResolver approach to work, or know any other way to achieve something similar. Jeremias Maerki
Re: fo:external-graphic problem when using HTTPS - EntityResolver?
Hi Jeremias, Thank you for answering, I am already using urls, i.e http://host.domain.com/webapp/images/foo.gif works, but https://host.domain.com/webapp/images/foo.gif does not. Currently there's no possibility to set or use an EntityResolver (or similar) but it's on the todo list. Nice to hear, it would be usefull on occasion. Br - Johan Jeremias Maerki wrote: Currently there's no possibility to set or use an EntityResolver (or similar) but it's on the todo list. In the meantime you could try to set the baseURL in Java code like this: Configuration.put(baseDir, https://myserver/somedir;); But please be aware that this currently only works in the CVS version of FOP (branch 'fop-0_20_2-maintain'). The current release only support local directories, no URLs. This will be in the upcoming 0.20.5 release. On 19.11.2002 13:51:55 Johan Åbrandt wrote: Hi, I have the following external graphic declaration in a XML file: fo:external-graphic src=url('{$base-url}/images/logo.jpg') height=30pt width=170pt/ I render it to a servlet outputstream using: Driver driver; driver = new Driver( new InputSource( reader ), out ); driver.setRenderer( Driver.RENDER_PDF ); driver.run(); This works just fine when having the server configured for HTTP but when using HTTPS, it fails with error: Error while creating area : Error with image URL: unknown certificate and no base directory is specified I think this is because I am using a own generated certificate and not a real certificate from f ex Verisign. I know that I can either create my own SecurityManager (effectively disabling security), or use a real certificate. I would however like to circumvent all such hazzles and retrieve the image in some other means instead, intially I tried to use a custom EntityResolver, but I doesnt seem like it is used for image url resolution: i.e. driver = new Driver( new InputSource( reader ), out ); driver.setRenderer( Driver.RENDER_PDF ); XMLReader xmlReader = XMLReaderFactory.createXMLReader(); xmlReader.setEntityResolver( new CustomEntityResolver() ); driver.setXMLReader( xmlReader ); driver.run(); Does anyone have any tips how to get the EntityResolver approach to work, or know any other way to achieve something similar. Jeremias Maerki -- Johan Åbrandt Technical Project Manager (Tekninen projektipäällikkö) Tel. +358 9 6817 3342 Mobile. +358 40 848 8068 [EMAIL PROTECTED] Profit Software Oy Meritullinkatu 11 C 00170 Helsinki, Finland __ This message and its attachments have been found clean from known viruses with three different antivirus programs. __
Re: fo:external-graphic problem when using HTTPS - EntityResolver?
Are your images located on the same server as FOP? If yes, you could access the files directly by filesystem if you set baseDir to something like: Configuration.put(baseDir, C:\tomcat\webapps\webapp); Surely not a clean solution but faster than going via http/https and it could work for the moment. On 19.11.2002 14:19:33 Johan Åbrandt wrote: Hi Jeremias, Thank you for answering, I am already using urls, i.e http://host.domain.com/webapp/images/foo.gif works, but https://host.domain.com/webapp/images/foo.gif does not. Currently there's no possibility to set or use an EntityResolver (or similar) but it's on the todo list. Nice to hear, it would be usefull on occasion. Br - Johan Jeremias Maerki wrote: Currently there's no possibility to set or use an EntityResolver (or similar) but it's on the todo list. In the meantime you could try to set the baseURL in Java code like this: Configuration.put(baseDir, https://myserver/somedir;); But please be aware that this currently only works in the CVS version of FOP (branch 'fop-0_20_2-maintain'). The current release only support local directories, no URLs. This will be in the upcoming 0.20.5 release. On 19.11.2002 13:51:55 Johan Åbrandt wrote: Hi, I have the following external graphic declaration in a XML file: fo:external-graphic src=url('{$base-url}/images/logo.jpg') height=30pt width=170pt/ I render it to a servlet outputstream using: Driver driver; driver = new Driver( new InputSource( reader ), out ); driver.setRenderer( Driver.RENDER_PDF ); driver.run(); This works just fine when having the server configured for HTTP but when using HTTPS, it fails with error: Error while creating area : Error with image URL: unknown certificate and no base directory is specified I think this is because I am using a own generated certificate and not a real certificate from f ex Verisign. I know that I can either create my own SecurityManager (effectively disabling security), or use a real certificate. I would however like to circumvent all such hazzles and retrieve the image in some other means instead, intially I tried to use a custom EntityResolver, but I doesnt seem like it is used for image url resolution: i.e. driver = new Driver( new InputSource( reader ), out ); driver.setRenderer( Driver.RENDER_PDF ); XMLReader xmlReader = XMLReaderFactory.createXMLReader(); xmlReader.setEntityResolver( new CustomEntityResolver() ); driver.setXMLReader( xmlReader ); driver.run(); Does anyone have any tips how to get the EntityResolver approach to work, or know any other way to achieve something similar. Jeremias Maerki
Re: fo:external-graphic problem when using HTTPS - EntityResolver?
Johan Åbrandt wrote: It doesnt do the trick for me since I have no idea where any of our customers might have decided to install their application server. Also I am using EAR file which means that servletContext.getRealPath( string ) wouldnt do it either. I am currently looking into using the javax.servlet.context.tempdir directory, and put the file there in init() for later use. That solution would probably work, but I´m not sure if I can look at myself in the mirror after such a hack... You can also consider using kind of proxy servlet in which resolve https image. I mean: fo:external-graphics src=url('http://foo.bar/proxyServlet?url=https://real.url')/ -- Oleg Tkachenko eXperanto team Multiconn Technologies, Israel
Re: fo:external-graphic problem when using HTTPS - EntityResolver?
Johan Åbrandt wrote: Personally I would put a high priority on enabling the programmer to override resource resolution (ala EntityResolver) for FOP though. As Jeremias pointed out SourceResolver is already in the todo list. But when it would be implemented - nobody knows. -- Oleg Tkachenko eXperanto team Multiconn Technologies, Israel
Re: fo:external-graphic problem when using HTTPS - EntityResolver?
As Jeremias pointed out SourceResolver is already in the todo list. Ok, I it is this one: Integrate with Jakarta Avalon: logging, configuration, URI resolver, component management, image caching etc. ? open ? Anyhow, thanks for the help, Oleg and Jeremias. Br - Johan Oleg Tkachenko wrote: Johan Åbrandt wrote: Personally I would put a high priority on enabling the programmer to override resource resolution (ala EntityResolver) for FOP though. As Jeremias pointed out SourceResolver is already in the todo list. But when it would be implemented - nobody knows. -- Johan Åbrandt Technical Project Manager (Tekninen projektipäällikkö) Tel. +358 9 6817 3342 Mobile. +358 40 848 8068 [EMAIL PROTECTED] Profit Software Oy Meritullinkatu 11 C 00170 Helsinki, Finland __ This message and its attachments have been found clean from known viruses with three different antivirus programs. __