【发布时间】:2021-11-05 02:24:55
【问题描述】:
我正在尝试使用 TLS-PSK 运行 Jetty 服务器。但是,我收到以下日志消息:
WARN org.eclipse.jetty.io.ManagedSelector - java.lang.UnsupportedOperationException
Jetty 日志显示在下面启用:
+> Cipher Suite Selections
+> Enabled size=1
| +> TLS_PSK_WITH_AES_256_CBC_SHA
+> Disabled size=24
当我在 Android 上启动我的 Jetty 服务器时,以下是与 Selector 相关的转储日志
+= SelectorManager@ServerConnector@fe6bfb2{SSL, (ssl, http/1.1)}{0.0.0.0:8443} - STARTED
| += ManagedSelector@7ad0eac{STARTED} id=0 keys=0 selected=0 updates=0 - STARTED
| += EatWhatYouKill@42fd775/SelectorProducer@582930a/PRODUCING/p=false/QueuedThreadPool[qtp207014042]@c56c89a{STARTED,8<=8<=10,i=6,r=-1,q=0}[ReservedThreadExecutor@9540b03{s=0/1,p=0}][pc=0,pic=0,pec=0,epc=0]@2021-09-08T01:32:00.463-04:00 - STARTED
| | +- SelectorProducer@582930a
| | +~ QueuedThreadPool[qtp207014042]@c56c89a{STARTED,8<=8<=10,i=6,r=-1,q=0}[ReservedThreadExecutor@9540b03{s=0/1,p=0}] - STARTED
| +> updates @ 2021-09-08T01:32:00.453-04:00 size=0
| +> keys @ 2021-09-08T01:32:00.46-04:00 size=0
以下是我目前调用的 SslContextFactory API 配置列表:
QueuedThreadPool threadPool = new QueuedThreadPool();
threadPool.setMaxThreads(10);
Server jettyServer = new Server(threadPool);
jettyServer.addBean(new ScheduledExecutorScheduler());
SslContextFactory ctxFactory = new SslContextFactory.Server();
ctxFactory.setProvider(PROVIDER_NAME);
ctxFactory.setKeyStoreProvider(PROVIDER_NAME);
ctxFactory.setExcludeCipherSuites(new String[0]); //Empty
ctxFactory.setIncludeCipherSuites(suites); //"TLS_PSK_WITH_AES_256_CBC_SHA"
ctxFactory.setExcludeProtocols("TLS", "TLSv1", "TLSv1.1");
ctxFactory.setIncludeProtocols("TLSv1.2");
ctxFactory.setKeyStore(keystore);
ctxFactory.setSslContext(sslContext);
关于选择器,我是否缺少一些配置?
【问题讨论】:
-
提供的信息不足,无法使用。 PROVIDER_NAME 是什么?您正在使用什么 Android API 级别?该异常的整个堆栈跟踪是什么?
标签: android ssl jetty embedded-jetty