2017-01-15 2 views
0

Я пытаюсь достичь взаимоприемлемого аутентификацией сервера API REST с помощью искрового-Java и от documentation я вижу:Взаимная аутентификация с искрой Java

безопасный (keystoreFilePath, keystorePassword, truststoreFilePath, truststorePassword);

... который выглядит точно, что мне нужно. Однако я могу только сделать одностороннюю аутентификацию сервера, сертификат клиента никогда не проверяется в отношении доверия. Я использую версию 2.1, любые рекомендации или указатели будут очень благодарны.

+0

Это только предположение, но вы пробовали обновить SparkJava до [текущей версии] (http://sparkjava.com/download.html)? –

+0

Я отдам это, хотя я проверял заметки о выпуске, и об этом не упоминается. Не могу повредить, чтобы попробовать. – thechane

+0

... попробовал 2.5.4, не помог, к сожалению. – thechane

ответ

2

Кажется, что Spark в версии 2.6.0 добавил то, что вам нужно. Теперь, есть второй вариант secure:

 
/** 
    (...) 
    * @param needsClientCert Whether to require client certificate to be supplied in 
    *       request 
    (...) 
    */ 
public synchronized Service secure(String keystoreFile, 
             String keystorePassword, 
             String truststoreFile, 
             String truststorePassword, 
             boolean needsClientCert) 

Он устанавливает setNeedClientAuth(true) и setWantClientAuth(true) на подстилающей Jetty веб-сервер SslContextFactory объекта.