Я использовал собственные реализации HttpInput.Interceptor и HttpOutput.Interceptor в Jetty 11 и более ранних версиях, переопределяя методы readFrom и write для добавления своей собственной логики.
Сейчас я перехожу на Jetty 12, где эти API больше недоступны. Есть ли альтернативный подход или рекомендуемая замена в Jetty 12 для достижения того же поведения? Как это должно быть реализовано в новой версии?
Ниже приведен пример кода, который я делаю в Jetty 9, 10, 11.
import org.eclipse.jetty.server.HttpInput;
import org.eclipse.jetty.server.Request;
import java.io.IOException;
import java.nio.ByteBuffer;
public class JettyInputInterceptor implements HttpInput.Interceptor {
private final Request baseRequest;
private final Reporting rhandler;
JettyInputInterceptor(Reporting rhandler, Request baseRequest ) {
this.rhandler = rhandler;
this.baseRequest = baseRequest;
}
@Override
public HttpInput.Content readFrom( HttpInput.Content content ) {
long handle = rhandler.getRequestHandle();
if( content.hasContent() && handle != 0L ) {
int size = content.remaining();
byte[] body = new byte[size];
content.get( body, 0, size );
ReturnValue rv = Native.filterBody( handle, body );
if( rv.getAction() == NativeThing.ACTIONI ) {
ByteBuffer buf = ByteBuffer.wrap( rv.getValue() );
return new HttpInput.Content( buf );
} else if( rv.getAction() == NativeThing.ACTIONII ) {
try {
baseRequest.getResponse().setStatus( SC_BAD_REQUEST );
baseRequest.getResponse().closeOutput();
} catch( IOException e ) {
e.printStackTrace();
}
}
return new HttpInput.Content( ByteBuffer.wrap( body ) );
}
return content;
}
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... put-interc
Изменения API Jetty 12: как заменить HttpInput.Interceptor и HttpOutput.Interceptor ⇐ JAVA
Программисты JAVA общаются здесь
1769550158
Anonymous
Я использовал собственные реализации HttpInput.Interceptor и HttpOutput.Interceptor в Jetty 11 и более ранних версиях, переопределяя методы readFrom и write для добавления своей собственной логики.
Сейчас я перехожу на Jetty 12, где эти API больше недоступны. Есть ли альтернативный подход или рекомендуемая замена в Jetty 12 для достижения того же поведения? Как это должно быть реализовано в новой версии?
Ниже приведен пример кода, который я делаю в Jetty 9, 10, 11.
import org.eclipse.jetty.server.HttpInput;
import org.eclipse.jetty.server.Request;
import java.io.IOException;
import java.nio.ByteBuffer;
public class JettyInputInterceptor implements HttpInput.Interceptor {
private final Request baseRequest;
private final Reporting rhandler;
JettyInputInterceptor(Reporting rhandler, Request baseRequest ) {
this.rhandler = rhandler;
this.baseRequest = baseRequest;
}
@Override
public HttpInput.Content readFrom( HttpInput.Content content ) {
long handle = rhandler.getRequestHandle();
if( content.hasContent() && handle != 0L ) {
int size = content.remaining();
byte[] body = new byte[size];
content.get( body, 0, size );
ReturnValue rv = Native.filterBody( handle, body );
if( rv.getAction() == NativeThing.ACTIONI ) {
ByteBuffer buf = ByteBuffer.wrap( rv.getValue() );
return new HttpInput.Content( buf );
} else if( rv.getAction() == NativeThing.ACTIONII ) {
try {
baseRequest.getResponse().setStatus( SC_BAD_REQUEST );
baseRequest.getResponse().closeOutput();
} catch( IOException e ) {
e.printStackTrace();
}
}
return new HttpInput.Content( ByteBuffer.wrap( body ) );
}
return content;
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79877478/jetty-12-api-changes-how-to-replace-httpinput-interceptor-and-httpoutput-interc[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия