Error 403 - Eventually happening

First of all, thank you so much for this amazing software!

I’ve developed a shiny app using shinyproxy that is being used by ~15 users.

I’ve implemented a local server running Ubuntu 20.04.1 LTS and installed the .deb package of shinyproxy on it.

I’m using OpenLDAP for authentication and authorization, Docker and users are accessing on their web browsers on LAN (usually Chrome).

The login works fine for most of the time, however, sometimes they are blocked from logging in and the Error shown is 403.

This is the log text when the error occurs:

set 29 11:40:24 adt-Vostro-3470 java[240458]: 2020-09-29 11:40:24.340 ERROR 240458 --- [ XNIO-2 I/O-1] io.undertow.proxy : UT005028: Proxy request to /proxy_endpoint/4827a00f-efcb-4ab4-870d-d7e365b55d47/ failed set 29 11:40:24 adt-Vostro-3470 java[240458]: java.nio.channels.ClosedChannelException: null set 29 11:40:24 adt-Vostro-3470 java[240458]: at io.undertow.client.http.HttpClientConnection$5.handleEvent(HttpClientConnection.java:188) ~[undertow-core-1.4.22.Final.jar!/:1.4.22.Final] set 29 11:40:24 adt-Vostro-3470 java[240458]: at io.undertow.client.http.HttpClientConnection$5.handleEvent(HttpClientConnection.java:167) ~[undertow-core-1.4.22.Final.jar!/:1.4.22.Final] set 29 11:40:24 adt-Vostro-3470 java[240458]: at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92) ~[xnio-api-3.3.8.Final.jar!/:3.3.8.Final] set 29 11:40:24 adt-Vostro-3470 java[240458]: at org.xnio.StreamConnection.invokeCloseListener(StreamConnection.java:80) ~[xnio-api-3.3.8.Final.jar!/:3.3.8.Final] set 29 11:40:24 adt-Vostro-3470 java[240458]: at org.xnio.Connection.close(Connection.java:142) ~[xnio-api-3.3.8.Final.jar!/:3.3.8.Final] set 29 11:40:24 adt-Vostro-3470 java[240458]: at org.xnio.IoUtils.safeClose(IoUtils.java:134) ~[xnio-api-3.3.8.Final.jar!/:3.3.8.Final] set 29 11:40:24 adt-Vostro-3470 java[240458]: at io.undertow.util.ConnectionUtils.doDrain(ConnectionUtils.java:130) ~[undertow-core-1.4.22.Final.jar!/:1.4.22.Final] set 29 11:40:24 adt-Vostro-3470 java[240458]: at io.undertow.util.ConnectionUtils.cleanClose(ConnectionUtils.java:74) ~[undertow-core-1.4.22.Final.jar!/:1.4.22.Final] set 29 11:40:24 adt-Vostro-3470 java[240458]: at io.undertow.client.http.HttpClientConnection.close(HttpClientConnection.java:466) ~[undertow-core-1.4.22.Final.jar!/:1.4.22.Final] set 29 11:40:24 adt-Vostro-3470 java[240458]: at org.xnio.IoUtils.safeClose(IoUtils.java:134) ~[xnio-api-3.3.8.Final.jar!/:3.3.8.Final] set 29 11:40:24 adt-Vostro-3470 java[240458]: at io.undertow.server.handlers.proxy.ProxyHandler$IoExceptionHandler.handleException(ProxyHandler.java:790) ~[undertow-core-1.4.22.Final.jar!/:1.4.22.Final] set 29 11:40:24 adt-Vostro-3470 java[240458]: at org.xnio.ChannelListeners.invokeChannelExceptionHandler(ChannelListeners.java:126) ~[xnio-api-3.3.8.Final.jar!/:3.3.8.Final] set 29 11:40:24 adt-Vostro-3470 java[240458]: at io.undertow.util.Transfer$TransferListener.handleEvent(Transfer.java:193) ~[undertow-core-1.4.22.Final.jar!/:1.4.22.Final] set 29 11:40:24 adt-Vostro-3470 java[240458]: at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92) ~[xnio-api-3.3.8.Final.jar!/:3.3.8.Final] set 29 11:40:24 adt-Vostro-3470 java[240458]: at io.undertow.channels.DetachableStreamSinkChannel$SetterDelegatingListener.handleEvent(DetachableStreamSinkChannel.java:285) ~[undertow-core-1.4.22.Final.jar!/:1.4.22.Final] set 29 11:40:24 adt-Vostro-3470 java[240458]: at io.undertow.channels.DetachableStreamSinkChannel$SetterDelegatingListener.handleEvent(DetachableStreamSinkChannel.java:272) ~[undertow-core-1.4.22.Final.jar!/:1.4.22.Final] set 29 11:40:24 adt-Vostro-3470 java[240458]: at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92) ~[xnio-api-3.3.8.Final.jar!/:3.3.8.Final] set 29 11:40:24 adt-Vostro-3470 java[240458]: at org.xnio.conduits.WriteReadyHandler$ChannelListenerHandler.writeReady(WriteReadyHandler.java:65) ~[xnio-api-3.3.8.Final.jar!/:3.3.8.Final] set 29 11:40:24 adt-Vostro-3470 java[240458]: at org.xnio.nio.NioSocketConduit.handleReady(NioSocketConduit.java:93) ~[xnio-nio-3.3.8.Final.jar!/:3.3.8.Final] set 29 11:40:24 adt-Vostro-3470 java[240458]: at org.xnio.nio.WorkerThread.run(WorkerThread.java:561) ~[xnio-nio-3.3.8.Final.jar!/:3.3.8.Final]

It occurs when an user tries to login (I’ve tried to reproduce but without success). They just need to keep trying and eventually it works.

I am not using any reverse proxy.

I’ve googled this specific problem and I guess it is related to CSRF. Is there a way to disable it from Spring framework?

I would appreciate any help.

Thanks again for your amazing work!