2013-07-11 3 views
0

Я хочу зашифровать SOAP-сообщение открытым ключом Сервера и подписывать одно и то же сообщение с закрытым ключом клиента. В идеале ключи для подписи и шифрования различны.Подписание и шифрование сообщения SOAP с использованием Apache Rampart

Обращался к примерам Apache Rampart из команды WSO2. Один из таких образцов Rampart конфигурации приведены в:

RampartConfig rampartConfig = new RampartConfig(); 

     Properties merlinProp = new Properties(); 
     merlinProp.put("org.apache.ws.security.crypto.merlin.keystore.type", "JKS"); 
     merlinProp.put("org.apache.ws.security.crypto.merlin.file","C:/Documents and Settings/abdul.mujeeb/workspace/Axis2Clients/src/certs/oasis.jks"); 
     merlinProp.put("org.apache.ws.security.crypto.merlin.keystore.password", "password"); 

     CryptoConfig sigCryptoConfig = new CryptoConfig(); 
     sigCryptoConfig.setProvider("org.apache.ws.security.components.crypto.Merlin"); 
     sigCryptoConfig.setProp(merlinProp); 

     CryptoConfig encrCryptoConfig = new CryptoConfig(); 
     encrCryptoConfig.setProvider("org.apache.ws.security.components.crypto.Merlin"); 
     encrCryptoConfig.setProp(merlinProp); 

     rampartConfig.setUserCertAlias("alice"); 
     rampartConfig.setEncryptionUser("bob1"); 

     rampartConfig.setSigCryptoConfig(sigCryptoConfig); 
     rampartConfig.setEncrCryptoConfig(encrCryptoConfig); 

     rampartConfig.setPwCbClass("com.rolta.axis2.client.UserNameCallbackHandler"); 

пример не где не определяет открытый ключ сервера, которые будут использоваться для шифрования сообщения.

Несколько вопросов из приведенного выше примера:

1) Что функция rampartConfig.setEncryptionUser() обозначает? Как шифровать сообщение SOAP с помощью открытого ключа сервера?

2) Что означает функция rampartConfig.setUserCertAlias ​​() для? Подписание? Шифрование или и то, и другое?

Спасибо.

ответ

0

Что вы предоставили, так это то, как программно установить конфигурацию rampart. Методы набора здесь эквивалентны параметрам в валовой конфигурации. Все эти параметры указаны в rampart config guide.

Более полезное объяснение двух свойств можно найти в this blog post. Короче говоря,

encryptionUser - Псевдоним для открытого ключа, который будет использоваться для шифрования сообщения. Сертификат открытого ключа доступен в хранилище ключей под этим псевдонимом.

userCertAlias - Псевдоним, используемый для получения пароля соответствующего закрытого ключа из CallbackHandler для подписания.

+0

Nufail: Получил это. Спасибо за объяснение и ссылки. – Abdul

+0

привет, вы можете ответить [this] (http://stackoverflow.com/questions/28872116/securing-soap-webservices-with-apache-rampart) вопрос – dileepVikram

Смежные вопросы