Как вызвать веб-безопасность с защитой сообщений и аутентификацией сертификата клиента? - PullRequest
1 голос
/ 11 мая 2011

Мне нужно вызвать веб-сервис с клиентом Java. Эта служба аутентифицирует клиентов с помощью сертификатов на уровне сообщений (Ws-Security, а не SSL).

Это должно быть возможно, так как я могу генерировать веб-сервисы с JAX-WS с взаимной безопасностью сертификатов в этом диалоговом окне .

Но мне не удается создать клиента. У кого-нибудь есть идея?

1 Ответ

1 голос
/ 11 мая 2011

Я сам не пробовал , но из http://download.oracle.com/docs/cd/E17802_01/webservices/webservices/docs/2.0/tutorial/doc/:

Настройка защиты сообщений с использованием XWSS

Сервер приложений содержит все файлы JARфайлы, необходимые для использования XWS-Security для защиты приложений JAX-WS, однако для просмотра примеров приложений необходимо загрузить и установить автономный пакет Java WSDP.Вы можете загрузить Java WSDP из http://java.sun.com/webservices/downloads/webservicespack.html.

Чтобы добавить защиту сообщений в существующее приложение JAX-WS, использующее XWSS, выполните следующие действия на стороне клиента:

  • Создайте конфигурацию безопасности клиента.Файл конфигурации безопасности клиента определяет порядок и тип операций защиты сообщений, которые будут использоваться для клиентского приложения.Например, простая конфигурация безопасности для выполнения операции с цифровой подписью выглядит следующим образом:

            <xwss:Sign id="s" includeTimestamp="true">
                <xwss:X509Token encodingType="http://docs.oasis-
                  open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"
                                valueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-
                  x509-token-profile-1.0#X509SubjectKeyIdentifier"
                                certificateAlias="xws-security-client"
                                keyReferenceType="Identifier"/>
            </xwss:Sign>
    
        </xwss:SecurityConfiguration>
    </xwss:Service>
    <xwss:SecurityEnvironmentHandler>
        simple.client.SecurityEnvironmentHandler
    </xwss:SecurityEnvironmentHandler>
    

    Для получения дополнительной информации о написании и понимании конфигураций безопасности и настройкеSecurityEnvironmentHandlers, см. Учебное пособие по Java Web Services Developer Pack 1.6 по http://java.sun.com/webservices/docs/1.6/tutorial/doc/index.html.

  • . В своем клиентском коде создайте объект XWSSecurityConfiguration, инициализированный сгенерированной конфигурацией безопасности.Вот пример кода, который вы бы использовали в своем клиентском файле.Пример полного файла, использующего этот код, приведен в примере клиента в каталоге \ jaxws2.0 \ simple-doclit \ src \ simple \ client \.

    FileInputStream f = new FileInputStream("./etc/client_security_config.xml"); 
    XWSSecurityConfiguration config = SecurityConfigurationFactory.newXWSSecurityConfiguration(f);  
    
  • Установите информацию о конфигурации безопасности для RequestContext с помощью свойства XWSSecurityConfiguration.MESSAGE_SECURITY_CONFIGURATION.Пример полного файла, использующего этот код, приведен в примере клиента в каталоге \ jaxws2.0 \ simple-doclit \ src \ simple \ client \.

    // put the security config info
    ((BindingProvider)stub).getRequestContext().put(
        XWSSecurityConfiguration.MESSAGE_SECURITY_CONFIGURATION,
        config); 
    
  • Вызовите метод на заглушке, как если бы вы писали клиент, не обращая внимания на добавление XWS-Security.Пример приложения из каталога \ jaxws2.0 \ simple-doclit \ src \ simple \ client \ приведен ниже:

    Holder<String> hold = new Holder("Hello !");
    stub.ping(ticket, hold); 
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...