Заголовок www-authenticate нарушает работу JettyClientHttpConnector.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Заголовок www-authenticate нарушает работу JettyClientHttpConnector.

Сообщение Anonymous »

Среда
  • Spring Boot 3.3.4
  • Spring Web 6.1.1
Старые окрестности, где работал
  • Весна Загрузите 2.7.18
  • Spring Web 5.3.31
Контекст
У нас есть перенесен из среды Spring Boot 2.7.18 в Spring Boot 3.3.4, и мы обнаружили это при использовании WebClient с JettyClientHttpConnector с его соответствующий HttpClient, если вызов идет с заголовком www-authenticate, он зависает, совершая бесконечные вызовы, и мы никогда не получаем от него правильного ответа.
Все это отлично работало в версии Spring Boot 2, где при получении вызова он отвечал без каких-либо проблем.
Мы пытались определить соединитель самым простым способом, но это всегда прерывается в случае получения этого заголовка.
Примеры и код
Мы провели тест, просто сообщив WebClient, что коннектор, который мы собираемся использовать, — JettyClientHttpConnector. p>

Код: Выделить всё

WebClient client =
WebClient.builder()
.baseUrl("your-url-with-www-authenticate-header-in-response")
.clientConnector(new JettyClientHttpConnector())
.build();
Если вы попытаетесь позвонить на любую конечную точку, которая возвращает заголовок www-authenticate, вы увидите, что он зависает и после прохождения таймаута выдает следующую ошибку:
p>

Код: Выделить всё

onFillableFail SslConnection@10ac4a81::SocketChannelEndPoint@4d09e077[{l=null,r=null,CLOSED,fill=-,flush=-,to=7/30000}{io=1/1,kio=-1,kro=-1}]->[SslConnection@10ac4a81{NOT_HANDSHAKING,eio=-1/-1,di=-1,fill=INTERESTED,flush=IDLE}~>{l=null,r=null,CLOSED,fill=FI,flush=-,to=30027/30000}=>HttpConnectionOverHTTP@46f46e11(l:null   r:null,closed=true)=>HttpChannelOverHTTP@11d2c7ca(exchange=null)[send=HttpSenderOverHTTP@4f015fae(req=QUEUED,failure=null)[HttpGenerator@3d8bec8d{s=START}],recv=HttpReceiverOverHTTP@69f1010a(ex=null,rsp=IDLE,failure=null)[HttpParser{s=START,0 of -1}]]]
java.nio.channels.ClosedChannelException: null
at org.eclipse.jetty.io.FillInterest.onClose(FillInterest.java:147)
at org.eclipse.jetty.io.AbstractEndPoint.onClose(AbstractEndPoint.java:336)
at org.eclipse.jetty.io.SelectableChannelEndPoint.onClose(SelectableChannelEndPoint.java:165)
at org.eclipse.jetty.io.AbstractEndPoint.onClose(AbstractEndPoint.java:326)
at org.eclipse.jetty.io.AbstractEndPoint.doOnClose(AbstractEndPoint.java:253)
at org.eclipse.jetty.io.AbstractEndPoint.close(AbstractEndPoint.java:217)
at org.eclipse.jetty.io.AbstractEndPoint.close(AbstractEndPoint.java:200)
at org.eclipse.jetty.io.ssl.SslConnection$SslEndPoint.disconnect(SslConnection.java:1399)
at org.eclipse.jetty.io.ssl.SslConnection$SslEndPoint.doShutdownOutput(SslConnection.java:1381)
at org.eclipse.jetty.io.ssl.SslConnection$SslEndPoint.doClose(SslConnection.java:1449)
at org.eclipse.jetty.io.AbstractEndPoint.doOnClose(AbstractEndPoint.java:248)
at org.eclipse.jetty.io.AbstractEndPoint.close(AbstractEndPoint.java:217)
at org.eclipse.jetty.io.AbstractEndPoint.close(AbstractEndPoint.java:200)
at org.eclipse.jetty.client.transport.internal.HttpConnectionOverHTTP.close(HttpConnectionOverHTTP.java:298)
at org.eclipse.jetty.client.transport.internal.HttpConnectionOverHTTP.onIdleExpired(HttpConnectionOverHTTP.java:237)
at org.eclipse.jetty.io.ssl.SslConnection.onIdleExpired(SslConnection.java:371)
at org.eclipse.jetty.io.AbstractEndPoint.onIdleExpired(AbstractEndPoint.java:389)
at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:172)
at org.eclipse.jetty.io.IdleTimeout.idleCheck(IdleTimeout.java:113)
Кроме того, кажется, что он повторяет вызов, пока наконец не появится ошибка, но вызов зависает и никогда не разрешается.

Код: Выделить всё

[DEBUG] [ o.e.j.u.t.ReservedThreadExecutor: 348 ]  waiting for task
[DEBUG] [ com.zaxxer.hikari.pool.HikariPool: 405 ]  HikariPool-1 - Pool stats (total=10, active=0, idle=10, waiting=0)
[DEBUG] [ com.zaxxer.hikari.pool.HikariPool: 510 ]  HikariPool-1 - Fill pool skipped, pool has sufficient level or currently being filled.
[DEBUG] [ o.e.j.util.thread.QueuedThreadPool: 1015 ]  Evict check, period=60000ms QueuedThreadPool[HttpClient@7218bb00]@42681628{STARTED,8

Подробнее здесь: [url]https://stackoverflow.com/questions/79290930/the-www-authenticate-header-breaks-jettyclienthttpconnector[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»