2016-09-13 2 views
1

Как получить сертификат x509 от клиента? Я использую Java-Spring-Boot-Framework со встроенным tomcat. Для protyping я настроил это с помощью Java SE:Весенняя загрузка - Чтение сертификата клиента x509 по HTTP-запросу

HttpsExchange httpsExchange = (HttpsExchange) httpReq;

name = httpsExchange.getSSLSession(). GetPeerPrincipal(). GetName();

пользователь дал мне ссылку, чтобы сделать это здесь (внизу)

@RequestMapping(value = "/grab") 
public void grabCert(HttpServletRequest servletRequest) { 
    Certificate[] certs = 
      (Certificate[]) servletRequest.getAttribute("javax.servlet.request.X509Certificate"); 
} 

Но я не в состоянии получить сертификат! Может быть, потому, что я использую tomcat, и он обрабатывает все SSL-соединения. Чтобы сертификат не получал мое приложение. Что мне нужно сделать, чтобы получить сертификат клиентов? Клиентский сертификат используется для подключения https. Мне нужна информация от предмета сертификата. Благодарю.

ответ

2

Вы должны получить его от HttpServletRequest.

Вы не можете проверить ответ на этот вопрос: How to get the certificate into the X509 filter (Spring Security)?:

Нет, вы не можете получить его таким образом. Вы должны захватить его из HTTPServletRequest:

X509Certificate[] certs = (X509Certificate[])HttpServletRequest.getAttribute("javax.servlet.request.X509Certificate"); 

Это был пост я пытался указать вам, написанный Гэндальфа.

И это был оригинал question

+0

Спасибо за ваш комментарий! После устранения неполадок я понял! И это линия, чтобы захватить сертификат клиента из HttpServletRequest. – MissBonbon