Как организовать аутентификацию X509 в веб-приложении с помощью Java и Spring?

У меня есть USB-токен с закрытым ключом и сертификатом X509. Это видно из Firefox, так что все в порядке. У меня есть пример приложения от Spring Security (я использую версию 3), который просто демонстрирует разные типы аутентификации. Это приложение было развернуто на JBoss AS 6. Я просмотрел много форумов и статей для получения информации о том, как использовать сертификат X509 вместо использования аутентификации входа/пароля (пример: аутентификация x509 с Spring Security 2.0.4). Везде я видел: "Просто добавьте тег x509 в свой applicationContext.xml", "О, спасибо! Работает!". В примере приложения Spring Security в applicationContext.xml есть фрагмент x509, который был прокомментирован. Я раскомментировал этот материал, но ничего не работает. Это приложение регистрирует все действия, поэтому я вижу, что фильтр X509 срабатывает, когда я загружаю страницу приложения, но ничего не делает, потому что пишет в журнале: «Сертификат не найден в запросе пользователя».

Можете ли вы помочь мне с этой проблемой? Должен ли Spring получить CN из сертификата из браузера и использовать его вместо имени для входа? Что я делаю неправильно?

P.S. У меня есть правый блок обслуживания пользователя в applicationContext.xml.

П.П.С. И извините за мой язык - он не мой родной.


person Ronhul Maggot    schedule 05.07.2011    source источник


Ответы (1)


Я не знаком с Spring, но в документации указано:

Вы должны быть знакомы с использованием сертификатов и настройкой аутентификации клиента для вашего контейнера сервлетов, прежде чем пытаться использовать его с Spring Security. Большая часть работы заключается в создании и установке подходящих сертификатов и ключей. Например, если вы используете Tomcat, прочтите инструкции здесь http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html. Важно, чтобы вы заработали, прежде чем пытаться использовать Spring Security.

Прежде всего, я думаю, вам нужно настроить аутентификацию X509 в контейнере сервлетов JBoss.

person Jcs    schedule 13.07.2011
comment
У меня clientAuth = true и HTTPS работает в моей настройке JBoss. Я не знаю, что еще мне нужно. - person Ronhul Maggot; 27.07.2011