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 ответ
- Пожалуйста, получите доступ к сертификату, используя этот код:
X509Certificate[] certs = (X509Certificate[]) request.getAttribute("javax.servlet.request.X509Certificate");
- Сертификат всегда заполняется для запроса после успешной аутентификации сертификата клиента.
Убедитесь, что ваша поддержка длинная цепочка сертификатов:
Добавьте свойство max_packet_size в файл worker.properties
worker.ajp13w.max_packet_size=65536
Добавьте свойство 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