Я создаю веб-сервис и использую Jetty в качестве сервера.Для некоторых API, предоставляемых этим сервисом, мы хотим, чтобы они проходили аутентификацию по сертификату.Итак, у меня есть следующий код:
SslContextFactory sslContextFactory = new SslContextFactory();
sslContextFactory.setWantClientAuth(true);
Server server = new Server(pool);
ServerConnector sslConnector = new ServerConnector(server,
new SslConnectionFactory(sslContextFactory, "HTTP/1.1"),
new HttpConnectionFactory(httpsConfig));
server.addConnector(sslConnector);
Теперь мой сервис также имеет соответствующий веб-интерфейс.Когда пользователи получают доступ к веб-интерфейсу, который, в свою очередь, вызывает внутренние API-интерфейсы, браузер запрашивает у пользователя сертификат.Я не хочу, чтобы это произошло, потому что API, вызываемый веб-интерфейсом, не поддерживает аутентификацию сертификата.Однако приведенный выше код настраивается глобально.Есть ли способ решить эту проблему?
Обновление :
Я смотрел на другие реализации сервера.Например, в ASP.NET мы можем определить следующую конфигурацию:
<location path="some-api">
<system.webServer>
<security>
<access sslFlags="SslNegotiateCert"/>
</security>
</system.webServer>
</location>
Есть также аналогичные настройки в Apache Http Server
Так что похоже SSL / TLSсамо по себе не запрещает мне делать это.Есть какие-то настройки Jetty, которые я пропустил?