Spring Security X.509 Preauth

Я использую предварительную аутентификацию Spring Security 2.x с сертификатами X.509.

Я получаю certificateText с помощью HttpServletRequest.getAttribute("CERTIFICATE"),

Иногда вышеуказанный вызов возвращает "" (Пусто). Я считаю, что это происходит, когда сеанс HTTP истек.

Что бы объяснить, почему HttpServletRequest.getAttribute("CERT") возвращается пустой?

EDIT В Kerberos, например, билет доступен в каждом HTTP-запросе. Сертификат не всегда присутствует в HTTP-запросах X.509?

1 ответ

Решение
  1. Пожалуйста, получите доступ к сертификату, используя этот код:X509Certificate[] certs = (X509Certificate[]) request.getAttribute("javax.servlet.request.X509Certificate");
  2. Сертификат всегда заполняется для запроса после успешной аутентификации сертификата клиента.

Убедитесь, что ваша поддержка длинная цепочка сертификатов:

  1. Добавьте свойство max_packet_size в файл worker.propertiesworker.ajp13w.max_packet_size=65536

  2. Добавьте свойство packetSize в конфигурацию коннектора Ajp в папке конфигурации Tomcat \conf\server.xml<Connector port="8089" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" packetSize="65536"/>

Логи Apache: http://httpd.apache.org/docs/2.2/logs.html http://httpd.apache.org/docs/2.2/logs.html http://httpd.apache.org/docs/2.2/mod/core.html

Другие вопросы по тегам