Напоминание: версия для Jetty (с 1995 года) - <servlet_support>.<major_version>.<minor_version>
Поздравляю, вы, по сути, пропустили 14 основных версий в Jetty.: -)
Не удивительно, что это кажется таким пугающим.
решил перейти на JAVA 8
Знай, что Январь 2019 года - последнийдень Java 8 публичных обновлений .Это практически конец жизни для неоплачиваемых клиентов-оракулов.
Примечание: Java 9 уже устарела / не поддерживается.
Поскольку вы упоминаете использование SSL / TLS, оно составляет Обязательно обновляйте JVM и не используйте устаревшую JVM (требования к браузеру и TLS).
Рассмотрите возможность обновления (снова) до Java 11 до этого года (2018 г.)) окончен.
Цикл обновления для Java ускоряется, не ожидайте, что версии Java будут задерживаться годами.Основные версии не должны длиться более 6 месяцев (в настоящее время).
log.info ("mortbay debug = '" + debug + "'");// заморожено org.eclipse.jetty.util.log.Log.getLog (). setDebugEnabled (debug);
Ведение журнала не работает так.
Это зависит отвыбранная реализация (теперь есть SLf4j, java.util.logging и System.err).Использование Log.getLog()
дает вам корневой фасад ведения журнала, а использование setDebugEnabled()
на фасаде - это просто настройка отладки на фасаде, а не реальных регистраторов.
Используйте правильную реализацию ведения журнала и именованные регистраторы.
if (nio) {connector = new SelectChannelConnector (сервер);} else {
connector = новый SocketConnector (сервер);}
Больше нет блокирующих разъемов, он на 100% основан на NIO (для последних 5 основных версий)
Добро пожаловать в мир современных веб-протоколов.
Прошли те времена, когда соединитель обслуживал только один протокол, теперь все согласовывается во время фактического соединения.
Например: Connect, TLS, ALPN, HTTP / 2, HTTP / 1.1 с TLS, HTTP / 1.1 без TLSи т. д. (И вся информация, передаваемая при согласовании TLS одного соединения, также используется для определения того, с каким веб-приложением вы общаетесь, с каким хостом и какими сертификатами и т. д.)
Роль ServerConnector заключается втолько для прослушивания порта, фабрики соединений, которые вы назначаете для ServerConnector, определяют, что делать с этим соединением.
Прочитайте различные примеры кода для этого.
См .:
Упрощенный пример:
Server server = new Server();
int httpsPort = 8443;
// Find Keystore
ClassLoader cl = ServerConnectorHttps.class.getClassLoader();
String keystoreResource = "ssl/keystore";
URL f = cl.getResource(keystoreResource);
if (f == null)
{
throw new RuntimeException("Unable to find " + keystoreResource);
}
// Setup SSL
SslContextFactory sslContextFactory = new SslContextFactory();
sslContextFactory.setKeyStorePath(f.toExternalForm());
sslContextFactory.setKeyStorePassword("OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4");
sslContextFactory.setKeyManagerPassword("OBF:1u2u1wml1z7s1z7a1wnl1u2g");
// Setup HTTPS Configuration
HttpConfiguration httpsConf = new HttpConfiguration();
httpsConf.setSecurePort(httpsPort);
httpsConf.setSecureScheme("https");
httpsConf.addCustomizer(new SecureRequestCustomizer()); // adds ssl info to request object
// Establish the ServerConnector
ServerConnector httpsConnector = new ServerConnector(server,
new SslConnectionFactory(sslContextFactory,"http/1.1"),
new HttpConnectionFactory(httpsConf));
httpsConnector.setPort(httpsPort);
server.addConnector(httpsConnector);
// Add a Handler for requests
server.setHandler(new HelloHandler("Hello Secure World"));
server.start();
server.join();
}
server.setUserRealms (new UserRealm [] {new OSMUserRealm ()});В Jetty 9.3 я не нашел альтернативного метода для UserRealm, есть предложения, как мне переписать эту строку кода?
Безопасность обрабатывается службой LoginService, а служба LoginService может содержать область (если этот LoginService поддерживает такую концепцию).
LoginService может принадлежать в качестве компонента на сервере, но это только для управления жизненным циклом службы LoginService.
WebAppContext с настройкой контекста безопасностичтобы использовать определенную область, найдет все компоненты LoginService на сервере и использует ту, которая соответствует указанной области.