получить информацию о пользователе из сертификата клиента в контексте веб-службы Java - PullRequest
2 голосов
/ 21 июня 2010

Я занимаюсь разработкой веб-службы Java с включенной защитой сертификата клиента.Я не хочу добавлять параметр к каждому методу с идентификатором пользователя.Поскольку пользователь уже проходит аутентификацию через мыльный заголовок с помощью своего клиентского сертификата, возможно ли получить данные пользователя (общее имя, адрес электронной почты и т. Д.) Из его сертификата?

Спасибо!

Ответы [ 2 ]

3 голосов
/ 21 июня 2010

Так вы можете извлечь DN из запроса,

      Object certChain = request.getAttribute(
            "javax.servlet.request.X509Certificate");
       if (certChain != null) {
          X509Certificate certs[] = (X509Certificate[])certChain;
          X509Certificate cert = certs[0];
          String n = cert.getSubjectDN().getName();
        }

Чтобы это работало, вы должны правильно настроить HTTPS-разъем. Если используется AJP, необходимо настроить соединитель AJP таким образом, чтобы сертификат передавался из Apache в Tomcat.

0 голосов
/ 21 июня 2010

Приведите java.security.cert.Certificate к java.security.cert.X509Certificate и проверьте имеющиеся у вас методы - например, getSubjectDN()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...