Мыло 1.2 Конверт ответа с использованием открытого образцаJAVA

Программисты JAVA общаются здесь
Ответить
Гость
 Мыло 1.2 Конверт ответа с использованием открытого образца

Сообщение Гость »


Я пытаюсь обеспечить поддержку единого входа с помощью протокола WS-Trust, а целевому приложению требуется SOAP 1.2, а построитель Opensaml SOAP, похоже, имеет только SOAP 1.1. Есть ли какие-либо альтернативы встроенному ответу SOAP1.2.
SAML SOAP ответ, который принимает целевое приложение.

Код: Выделить всё


http://docs.oasis-open.org/ws-sx/ws-trust/200512/RSTRC/IssueFinal
urn:uuid:A9990D34-0804-4A61-B486-36B55AA1937F


2024-02-06T07:13:46.347Z
2024-02-06T07:18:46.347Z



Ответ, который я сгенерировал с помощью библиотеки Opensaml

Код: Выделить всё

?xml version="1.0" encoding="UTF-8" standalone="no"?>


http://docs.oasis-open.org/ws-sx/ws-trust/200512/RSTRC/IssueFinal

Test@123



2024-03-13T13:21:34.976Z
2024-03-13T13:26:34.976Z



Код Java, который я использовал

Код: Выделить всё

import org.opensaml.ws.soap.soap11.Body;
import org.opensaml.ws.soap.soap11.Envelope;
import org.opensaml.ws.soap.soap11.Header;
import org.opensaml.ws.soap.soap11.impl.BodyBuilder;
import org.opensaml.ws.soap.soap11.impl.EnvelopeBuilder;
import org.opensaml.ws.soap.soap11.impl.HeaderBuilder;
/// other codes
Envelope envelope = new EnvelopeBuilder().buildObject();

// Building Header element
Header header = new HeaderBuilder().buildObject();

Action action = new ActionBuilder().buildObject();
action.setValue(org.opensaml.ws.wstrust.WSTrustConstants.WSA_ACTION_RSTRC_ISSUE_FINAL);
RelatesTo relatesTo = new RelatesToBuilder().buildObject();
relatesTo.setValue(soapRequestValues.getString(SOAP_REQ_MESSAGEID));

// Security Object
Security security = new SecurityBuilder().buildObject();
Timestamp timestamp = new TimestampBuilder().buildObject();
Created created = new CreatedBuilder().buildObject();
created.setDateTime(new DateTime());
Expires expires = new ExpiresBuilder().buildObject();
expires.setDateTime(new DateTime().plusMinutes(5));
timestamp.setCreated(created);
timestamp.setExpires(expires);
security.getUnknownXMLObjects().add(timestamp);

header.getUnknownXMLObjects().add(action);
header.getUnknownXMLObjects().add(relatesTo);
header.getUnknownXMLObjects().add(security);
envelope.setHeader(header);
// body element code
Note the response contains body also ignored to avoid sensitive data.


Источник: https://stackoverflow.com/questions/781 ... -open-saml
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»