[undertow-dev] Creating a websocket proxy with undertow

Marc Boorshtein marc.boorshtein at tremolosecurity.com
Fri Nov 30 14:41:14 EST 2018


Thanks Stuart.  I need to avoid annotations since this will be configured
dynamically.  I was wrong about the version, right now i'm on 2.0.9.Final.
I'm trying to create a websocket proxy.  I was able to get the
ReceiveListener registered in Undertow and create a WebSocketClient.  I'm
trying to pipe the data from the client through Undertow to the server,
starting with a Text message:

@Override
protected void onText(WebSocketChannel webSocketChannel,
StreamSourceFrameChannel messageChannel)
throws IOException {
PooledByteBuffer b = pool.allocate();
ByteBuffer buffer = b.getBuffer();
while (messageChannel.read(buffer) > 0) {
WebSockets.sendText(buffer, wsClient, null);
}
b.close();
}


The message sent to the downstream websocket server isn't right though (and
the server rejects it).  The frame from wireshark just shows a buffer of
"\000\000...".  I think I'm close but I don't see an example of how to do
this.  Any suggestions or pointers would be greatly appreciated.

Thanks



Marc Boorshtein



On Thu, Nov 29, 2018 at 5:07 PM Stuart Douglas <sdouglas at redhat.com> wrote:

> The easiest way would probably be to use the JSR-356 API. You basically
> just make an @ServerEndpoint that connects to the remote endpoint, and then
> passes messages back and forth. The JSRWebSocketServer gives and example of
> how to setup the server endpoint.
>
> Stuart
>
> On Fri, Nov 30, 2018 at 8:34 AM Marc Boorshtein <
> marc.boorshtein at tremolosecurity.com> wrote:
>
>> Using the 1.4 series, I'm trying to handle upgrade and websockets.
>> Looking at a few examples and the code I think what I need to do is:
>>
>> 1.  add the WebSocketServlet to the right path
>> 2.  implement WebSocketConnectionCallback that will call my remote ws://
>> server
>>
>> Am I on the right track?  I haven't found an example of doing this with
>> undertow but found something similar with jetty (
>> https://github.com/chipster/chipster-web-server/blob/master/src/main/java/fi/csc/chipster/proxy/WebSocketProxyServlet.java)
>> but I havne't found the same thing for undertow so any pointers would be
>> appreciated.
>>
>> Thanks
>>
>>
>> Marc Boorshtein
>>
>>
>> _______________________________________________
>> undertow-dev mailing list
>> undertow-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/undertow-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/undertow-dev/attachments/20181130/b99368e2/attachment.html 


More information about the undertow-dev mailing list