geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Jencks <david_jen...@yahoo.com>
Subject Re: Configuring front end host for axis2 web services
Date Tue, 15 Feb 2011 08:54:21 GMT
Sorry for the delay.

We might look at what cxf does in this situation since they certainly have more ws experience
than I do :-)

I think we should consider configuring geronimo rather than the proxy servers.  After discussing
this a bit with ashish I think the following might work:

define a wsdl rewriting service (gbean for g 2.x) that can be configured with the header containing
the actual host/port and by default uses the httpd X-Forwarded-Host. (if the header isn't
present it uses the host from the request as at present).

The ws-specific object gets a reference to this service (gbean) and has it do the rewriting.
 

We can presumably use the same code for axis2, cxf (if necessary) and axis1. 

Comments?

thanks
david jencks

On Feb 10, 2011, at 10:54 PM, Ashish Jain wrote:

> Hi David,
> 
> Your bit on configuring the header can be another way. We can use a standard header name
for this for example FrontEnd-Proxy-HostPort or may be some other name. HTTP Server provides
a directive where custom headers can be appended to the requests.
> http://httpd.apache.org/docs/current/mod/mod_headers.html#requestheader
> 
> I am very much hopeful that other HTTP servers will also provide a way to configure custom
headers.
> So this option is also very much acceptable.
> 
> Thanks
> Ashish
> 
> On Thu, Feb 10, 2011 at 10:44 PM, David Jencks <david_jencks@yahoo.com> wrote:
> Hi Ashish,
> 
> I was certainly thinking of X-Forwarded-Host.  I'm not clear on whether this header includes
the original port.  Google hasn't shown me much info on how other people deal with this problem.
 I did find 
> http://httpd.apache.org/docs/current/mod/mod_proxy.html#proxypreservehost
> 
> which appears to indicate you can configure apache httpd to not introduce this problem
in the first place.
> 
> I can see that directly configuring the host would be useful in some circumstances, but
I think it would be easier in more circumstances to be able to configure the header name for
the original host.
> 
> So I guess you are right and directly configuring the host is the best solution for now.
 I'll let you know if I can find any more information on this.
> 
> thanks!
> david jencks
> 
> On Feb 10, 2011, at 6:28 AM, Ashish Jain wrote:
> 
>> Hi David,
>> 
>> I am not sure if we can use the request object. The request (org.apache.geronimo.webservices.WebServiceContainer.Request)
object gives you the address for the remote host which is the address for the proxy server,
however no information on the port. Another way could have been to utilize the header "request.getHeader("X-Forwarded-Host")"
but this is not a standard header AFAIK. So this option can also to be ruled out. So I think
modifying the schema is the best way ahead.
>> 
>> Thanks
>> Ashish
>> 
>> On Tue, Feb 8, 2011 at 6:34 PM, Ashish Jain <ashjain2@gmail.com> wrote:
>> Thanks David and Jarek. I am investigating on the comment made by David and seems
to have found some headers which are being appended by HTTP server. I will investigate further
in this direction to find out if the request object can be used to attain this.
>> 
>> Thanks
>> Ashish
>> 
>> 
>> On Tue, Feb 8, 2011 at 1:06 AM, David Jencks <david_jencks@yahoo.com> wrote:
>> Changing the schema like this shouldn't be a problem if its necessary.  I'd like
to understand better why its necessary.  Perhaps there's another way.
>> 
>> I thought that the way this was coded was that the host and port from the incoming
request were stuffed into the wsdl being returned.  Doesn't the proxy server tell us what
the original request was in some way such as a request attribute?  Could we look for that
information and use it if available and use the request itself if not?
>> 
>> thanks
>> david jencks
>> 
>> On Feb 7, 2011, at 10:39 AM, Jarek Gawor wrote:
>> 
>> > Ashish,
>> >
>> > Modifying the schema (without changing the namespace) is fine as long
>> > as you make the new element(s) optional. That at least is what we have
>> > done in the past.
>> >
>> > Jarek
>> >
>> > On Fri, Jan 28, 2011 at 10:00 AM, Ashish Jain <ashjain2@gmail.com> wrote:
>> >> Hi,
>> >>
>> >> When geronimo is front ended with a proxy say Apache HTTP server and a web
>> >> service is invoked via this proxy. The auto
>> >> generated wsdl will have the soap:address as
>> >> http://<g_host>:<g_port>/service_name. Instead it should be
>> >> http://<proxy_host>:
>> >> <proxy:port>/service_name. The method which takes care of all this
is
>> >> org.apache.geronimo.axis2.WSDLQueryHandler.writeResponse
>> >> . The baseUri attribute in the class has to be modified so that appropriate
>> >> soap:address can be written in the wsdl file.
>> >>
>> >> So as to get this property into geronimo one of the way would be to be able
>> >> to specify in geronimo deployment descriptor.
>> >> Adding a new attribute may require schema change.
>> >>
>> >> Is this acceptable? Are there any other alternative ways through which this
>> >> can be achieved?
>> >>
>> >> Thanks
>> >> Ashish
>> >>
>> 
>> 
>> 
> 
> 


Mime
View raw message