tus-java-client icon indicating copy to clipboard operation
tus-java-client copied to clipboard

Add a hook after connection is established

Open raja-baz opened this issue 7 years ago • 1 comments

We encountered a problem using tus-java-client when server is behind the aws load balancer. For things to work correctly, we need to be able to read the set-cookie header and send it back on future requests.

This could be implemented directly in the client, but I wanted to make as few changes(and as low-impact as possible). So instead I opted to add a hook after connection is opened. In our usage code we subclass TusClient and override the newly added onConnectionOpened to retrieve the headers and prepareConnection to inject cookies later on.

PS: I think it would be worth making the connection setup and preparation more easily hookable on a more fundamental level so one could use their own custom HTTP stack(without having to resort to the horribly low-level and undiscoverable URLStreamHandler).

raja-baz avatar Jan 19 '18 08:01 raja-baz

For things to work correctly, we need to be able to read the set-cookie header and send it back on future requests.

Good catch! Since we do not require cookies for our servers/load balancing, we never came across this issue. However, I am thinking whether we should build proper Cookie support into tus-java-client to save other users the hassle figuring that out. I won't be available for the next few days, so my responses my take some time.

PS: I think it would be worth making the connection setup and preparation more easily hookable on a more fundamental level so one could use their own custom HTTP stack(without having to resort to the horribly low-level and undiscoverable URLStreamHandler).

We briefly talked about allowing different HTTP stacks in https://github.com/tus/tus-java-client/issues/14 but the benefits (from my rather limited experience) of doing so did not justify the amount of work required. However, I am always open to discuss this.

Acconut avatar Jan 19 '18 10:01 Acconut