2014-02-19 2 views
2

Я студент колледжа, пытающийся внедрить плагин поставщика услуг для WebSSO в Java. Я использую Shibboleth IdP в качестве поставщика удостоверений. Я смог отправить запрос аутентификации в IdP и успешно получает ответ от IdP через сервлет. Я попробовал декодировать ответ и смог получить XMLObject. Теперь проблема в том, что ответ зашифрован. Поэтому, когда я используюкак расшифровать SAMLResponse, полученный от Shibboleth IdP

Assertion assertion = response.getAssertions().get(0); 

Это в основном возвращает null. Но когда я использую

Assertion assertion = response.getEncryptedAssertions().get(0); 

Это не null. Таким образом, это в основном означает, что ответ зашифрован. Теперь я не знаю, как расшифровать SAMLReponse. Любой указатель, код или предложение приветствуются.

ответ

1

Вы можете использовать что-то вроде этого (заменить yourCredential с Credential объекта):

StaticKeyInfoCredentialResolver keyresolver = 
    new StaticKeyInfoCredentialResolver(yourCredential); 

Decrypter samlDecrypter = new Decrypter(null, keyresolver, new InlineEncryptedKeyResolver()); 

Assertion assertion = samlDecrypter.decrypt(response.getEncryptedAssertions().get(0)); 

Если ваш сценарий является более сложным, более подробный пример можно найти здесь, на вики Шибболет в: Link

+0

Эй Спасибо за ответ. Но теперь у меня есть еще одна проблема. Я пробовал искать учетную информацию, но я не понимаю, что именно ей нужно. .pem информация о файлах или что? Это единственное, что я обнаружил в конфигурационных файлах, которые близки к информации типа Credential. Огромное спасибо. :) :) –

+0

Вы можете прочитать о том, как создать учетные данные здесь: https://wiki.shibboleth.net/confluence/display/SHIB2/IdPCredentials – Durandal

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