#android #ssl #jetty #embedded-jetty
Вопрос:
Я пытаюсь запустить сервер Jetty с помощью TLS-PSK. Тем не менее, я получаю следующий журнал msg:
WARN org.eclipse.jetty.io.ManagedSelector - java.lang.UnsupportedOperationException
Отображение журналов причалов включено ниже:
> Cipher Suite Selections
> Enabled size=1
| > TLS_PSK_WITH_AES_256_CBC_SHA
> Disabled size=24
Когда я запускаю свой сервер Jetty на Android, ниже приведен журнал дампа, связанный с 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
Ниже приведен список конфигурации API SslContextFactory, которую я вызывал до сих пор:
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);
Есть ли какая-то конфигурация, которой мне не хватает в отношении селектора?
Комментарии:
1. Недостаточно предоставленной информации для работы. Что такое PROVIDER_NAME? С каким уровнем API Android вы работаете? Какова вся последовательность этого исключения?
Ответ №1:
Выбранный PROVIDER_NAME
вами интерфейс Java SSLEngine
API не реализован полностью или должным образом.