Подписание и шифрование сообщения SOAP с использованием Apache Rampart

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

Ссылался на примеры 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");

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

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

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

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

Благодарю.

1 ответ

Решение

То, что вы предоставили, это как программно установить конфигурацию rampart. Установленные здесь методы эквивалентны параметрам в конфигурации валов. Все эти параметры перечислены в руководстве по настройке rampart.

Более полезное объяснение двух свойств может быть найдено в этом сообщении в блоге. Короче,

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

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

Другие вопросы по тегам