2015-04-13 8 views
1

Я ищу код java, который будет читать SAMLResponse и извлекает SAMLAssertion для отправки вперед. Я нашел http://sureshatt.blogspot.in/2012/11/how-to-read-saml-20-response-with.html эту ссылку, которая читает SAMLResponse, но не уверена, действительно ли она выполняет задачу получения SAMLAssertion только того, что я хочу.Как получить <SAMLAssertion> из <SAMLResponse> С библиотекой OpenSAML?

Кто-нибудь, пожалуйста, предоставьте мне java-тест/образец Java-кода?

ответ

0

Вы можете использовать библиотеку Open SAML (библиотека OpenSAML-J предоставляет инструменты для поддержки разработчиков, работающих с языком разметки безопасности (SAML).) Зависимость maven для вашей ссылки ниже.

<dependency> 
    <groupId>org.opensaml</groupId> 
    <artifactId>opensaml</artifactId> 
    <version>2.6.4</version> 
</dependency> 

После того, как вы получите SAMLResponse (который будет закодирована строкой), с помощью Open SAML можно декодировать его с помощью Base64 декодера, как только вы декодируется, необходим маршализацией ответа и элемента соответственно. После того, как это будет сделано, вам нужно будет ввести cast в Response Object, а из объекта Response вы получите Assertion. Так что это утверждение будет флуд NameID, Эмитент, Audience, подпись и т.д.

//Casting the response to the SAML 2.0 Response message. 
Response response = (Response) responseXmlObj; 

Я надеюсь, что это то, что исходный запрос, и я использовал один и тот же код из предоставленной ссылки, и это работает прекрасно.