本文整理了Java中org.opensaml.messaging.context.MessageContext.setMessage()
方法的一些代码示例,展示了MessageContext.setMessage()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。MessageContext.setMessage()
方法的具体详情如下:
包路径:org.opensaml.messaging.context.MessageContext
类名称:MessageContext
方法名:setMessage
暂无
代码示例来源:origin: line/armeria
messageContext.setMessage(message);
代码示例来源:origin: line/armeria
/**
* Converts an {@link AggregatedHttpMessage} which is received from the remote entity to
* a {@link SAMLObject}.
*/
static <T extends SAMLObject> MessageContext<T> toSamlObject(AggregatedHttpMessage msg, String name) {
final SamlParameters parameters = new SamlParameters(msg);
final byte[] decoded;
try {
decoded = Base64.getMimeDecoder().decode(parameters.getFirstValue(name));
} catch (IllegalArgumentException e) {
throw new SamlException("failed to decode a base64 string of the parameter: " + name, e);
}
@SuppressWarnings("unchecked")
final T message = (T) deserialize(decoded);
final MessageContext<T> messageContext = new MessageContext<>();
messageContext.setMessage(message);
final String relayState = parameters.getFirstValueOrNull(RELAY_STATE);
if (relayState != null) {
final SAMLBindingContext context = messageContext.getSubcontext(SAMLBindingContext.class, true);
assert context != null;
context.setRelayState(relayState);
}
return messageContext;
}
代码示例来源:origin: line/armeria
final AuthnRequest request = createAuthRequest(idp, defaultHostname);
final MessageContext<AuthnRequest> messageContext = new MessageContext<>();
messageContext.setMessage(request);
return new MessageContextAndIdpConfig(messageContext, idp);
}).thenCompose(arg -> {
代码示例来源:origin: org.apereo.cas/cas-server-support-saml-idp-web
/**
* Prepare outbound context.
*
* @param <T> the type parameter
* @param samlObject the saml object
* @param adaptor the adaptor
* @param outboundContext the outbound context
* @param binding the binding
* @param authnRequest the authn request
* @throws SamlException the saml exception
*/
protected <T extends SAMLObject> void prepareOutboundContext(final T samlObject,
final SamlRegisteredServiceServiceProviderMetadataFacade adaptor,
final MessageContext<T> outboundContext,
final String binding,
final RequestAbstractType authnRequest) throws SamlException {
LOGGER.trace("Outbound saml object to use is [{}]", samlObject.getClass().getName());
outboundContext.setMessage(samlObject);
SamlIdPUtils.preparePeerEntitySamlEndpointContext(authnRequest, outboundContext, adaptor, binding);
}
代码示例来源:origin: org.pac4j/pac4j-saml
protected MessageContext<Pac4jSAMLResponse> prepareOutboundMessageContext(final WebContext webContext) {
final Pac4jSAMLResponse outTransport = new DefaultPac4jSAMLResponse(webContext);
final MessageContext<Pac4jSAMLResponse> outCtx = new MessageContext<>();
outCtx.setMessage(outTransport);
return outCtx;
}
代码示例来源:origin: org.opensaml/opensaml-soap-impl
/** {@inheritDoc} */
protected void doInvoke(@Nonnull MessageContext<Envelope> messageContext) throws MessageHandlerException {
Envelope env = (Envelope) messageContext.getSubcontext(SOAP11Context.class).getEnvelope();
if (env == null) {
throw new MessageHandlerException("MessageContext did not contain a SOAP Envelope");
}
messageContext.setMessage(env);
}
代码示例来源:origin: org.opensaml/opensaml-soap-impl
/** {@inheritDoc} */
protected void doInvoke(MessageContext messageContext) throws MessageHandlerException {
Envelope env = (Envelope) messageContext.getSubcontext(SOAP11Context.class).getEnvelope();
List<XMLObject> bodyChildren = env.getBody().getUnknownXMLObjects();
if (bodyChildren == null || bodyChildren.isEmpty()) {
throw new MessageHandlerException("SOAP Envelope Body contained no children");
} else if (bodyChildren.size() > 1) {
log.warn("SOAP Envelope Body contained more than one child. Returning the first as the message");
}
messageContext.setMessage(env.getBody().getUnknownXMLObjects().get(0));
}
代码示例来源:origin: org.opensaml/opensaml-saml-impl
/** {@inheritDoc} */
@Override
@Nullable public List<Assertion> apply(@Nullable final ProfileRequestContext input) {
if (input != null && input.getOutboundMessageContext() != null) {
final Object outboundMessage = input.getOutboundMessageContext().getMessage();
if (outboundMessage == null) {
final Assertion ret = SAML2ActionSupport.buildAssertion(AddNameIDToSubjects.this,
idGenerator, issuerId);
input.getOutboundMessageContext().setMessage(ret);
return Collections.singletonList(ret);
} else if (outboundMessage instanceof Assertion) {
return Collections.singletonList((Assertion) outboundMessage);
} else if (outboundMessage instanceof Response) {
return ((Response) outboundMessage).getAssertions();
}
}
return null;
}
}
代码示例来源:origin: org.opensaml/opensaml-soap-impl
/** {@inheritDoc} */
@Override
protected boolean doPreExecute(@Nonnull final ProfileRequestContext profileRequestContext) {
ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
detailedErrors = detailedErrorsCondition.apply(profileRequestContext);
log.debug("{} Detailed errors are {}", getLogPrefix(), detailedErrors ? "enabled" : "disabled");
if (profileRequestContext.getOutboundMessageContext() != null && nullifyOutboundMessage) {
profileRequestContext.getOutboundMessageContext().setMessage(null);
} else {
profileRequestContext.setOutboundMessageContext(new MessageContext<Object>());
}
return super.doPreExecute(profileRequestContext);
}
代码示例来源:origin: org.opensaml/opensaml-saml-impl
/** {@inheritDoc} */
protected void doDecode() throws MessageDecodingException {
MessageContext<SAMLObject> messageContext = new MessageContext<>();
HttpServletRequest request = getHttpServletRequest();
if (!"POST".equalsIgnoreCase(request.getMethod())) {
throw new MessageDecodingException("This message decoder only supports the HTTP POST method");
}
String relayState = request.getParameter("TARGET");
log.debug("Decoded SAML relay state (TARGET parameter) of: {}", relayState);
SAMLBindingSupport.setRelayState(messageContext, relayState);
String base64Message = request.getParameter("SAMLResponse");
byte[] decodedBytes = Base64Support.decode(base64Message);
if (decodedBytes == null) {
log.error("Unable to Base64 decode SAML message");
throw new MessageDecodingException("Unable to Base64 decode SAML message");
}
SAMLObject inboundMessage = (SAMLObject) unmarshallMessage(new ByteArrayInputStream(decodedBytes));
messageContext.setMessage(inboundMessage);
log.debug("Decoded SAML message");
populateBindingContext(messageContext);
setMessageContext(messageContext);
}
代码示例来源:origin: org.opensaml/opensaml-saml-impl
/** {@inheritDoc} */
protected void doDecode() throws MessageDecodingException {
MessageContext<SAMLObject> messageContext = new MessageContext<>();
HttpServletRequest request = getHttpServletRequest();
if (!"POST".equalsIgnoreCase(request.getMethod())) {
throw new MessageDecodingException("This message decoder only supports the HTTP POST method");
}
String relayState = request.getParameter("RelayState");
log.debug("Decoded SAML relay state of: {}", relayState);
SAMLBindingSupport.setRelayState(messageContext, relayState);
InputStream base64DecodedMessage = getBase64DecodedMessage(request);
SAMLObject inboundMessage = (SAMLObject) unmarshallMessage(base64DecodedMessage);
messageContext.setMessage(inboundMessage);
log.debug("Decoded SAML message");
populateBindingContext(messageContext);
setMessageContext(messageContext);
}
代码示例来源:origin: net.shibboleth.idp/idp-saml-impl
/** {@inheritDoc} */
@Override
protected void doDecode() throws MessageDecodingException {
ssoRequest = buildIdPInitiatedSSORequest();
final MessageContext<SAMLObject> messageContext = new MessageContext<>();
messageContext.setMessage(buildAuthnRequest());
populateBindingContext(messageContext);
setMessageContext(messageContext);
}
代码示例来源:origin: org.apereo.cas/cas-server-support-saml-idp-web
/**
* Build encoder message context.
*
* @param request the authn request
* @param samlObject the saml response
* @param relayState the relay state
* @return the message context
*/
protected MessageContext getEncoderMessageContext(final RequestAbstractType request, final T samlObject, final String relayState) {
val ctx = new MessageContext<SAMLObject>();
ctx.setMessage(samlObject);
SAMLBindingSupport.setRelayState(ctx, relayState);
SamlIdPUtils.preparePeerEntitySamlEndpointContext(request, ctx, adaptor, getBinding());
val self = ctx.getSubcontext(SAMLSelfEntityContext.class, true);
self.setEntityId(SamlIdPUtils.getIssuerFromSamlObject(samlObject));
return ctx;
}
代码示例来源:origin: org.opensaml/opensaml-soap-impl
/** {@inheritDoc} */
public void prepareContext() throws MessageEncodingException {
MessageContext<MessageType> messageContext = getMessageContext();
XMLObject payload = null;
Fault fault = SOAPMessagingSupport.getSOAP11Fault(messageContext);
if (fault != null) {
log.debug("Saw SOAP 1.1 Fault payload with fault code, replacing any existing context message: {}",
fault.getCode() != null ? fault.getCode().getValue() : null);
payload = fault;
messageContext.setMessage(null);
} else {
payload = messageContext.getMessage();
}
if (payload == null) {
throw new MessageEncodingException("No outbound message or Fault contained in message context");
}
if (payload instanceof Envelope) {
storeSOAPEnvelope((Envelope) payload);
} else {
buildAndStoreSOAPMessage(payload);
}
}
代码示例来源:origin: net.shibboleth.idp/idp-saml-impl
/** {@inheritDoc} */
public void prepareContext() throws MessageEncodingException {
final MessageContext<SAMLObject> messageContext = getMessageContext();
XMLObject payload = null;
final Fault fault = SOAPMessagingSupport.getSOAP11Fault(messageContext);
if (fault != null) {
log.debug("Saw SOAP 1.1 Fault payload with fault code, replacing any existing context message: {}",
fault.getCode() != null ? fault.getCode().getValue() : null);
payload = fault;
messageContext.setMessage(null);
} else {
payload = messageContext.getMessage();
}
if (payload == null) {
throw new MessageEncodingException("No outbound message or Fault contained in message context");
}
if (payload instanceof Envelope) {
storeSOAPEnvelope((Envelope) payload);
} else {
buildAndStoreSOAPMessage(payload);
}
}
代码示例来源:origin: net.shibboleth.idp/idp-saml-impl
/** {@inheritDoc} */
@Override
protected void doDecode() throws MessageDecodingException {
final IdPInitiatedSSORequest ssoRequest = buildIdPInitiatedSSORequest();
final MessageContext<IdPInitiatedSSORequest> messageContext = new MessageContext<>();
messageContext.setMessage(ssoRequest);
messageContext.getSubcontext(SAMLPeerEntityContext.class, true).setEntityId(ssoRequest.getEntityId());
final SAMLMessageInfoContext msgInfoContext = messageContext.getSubcontext(SAMLMessageInfoContext.class, true);
msgInfoContext.setMessageIssueInstant(new DateTime(ssoRequest.getTime(), ISOChronology.getInstanceUTC()));
msgInfoContext.setMessageId(getMessageID());
populateBindingContext(messageContext);
setMessageContext(messageContext);
}
代码示例来源:origin: org.opensaml/opensaml-saml-impl
/** {@inheritDoc} */
@Override
protected void doExecute(@Nonnull final ProfileRequestContext profileRequestContext) {
final XMLObjectBuilderFactory bf = XMLObjectProviderRegistrySupport.getBuilderFactory();
final SAMLObjectBuilder<StatusCode> statusCodeBuilder =
(SAMLObjectBuilder<StatusCode>) bf.<StatusCode>getBuilderOrThrow(StatusCode.DEFAULT_ELEMENT_NAME);
final SAMLObjectBuilder<Status> statusBuilder =
(SAMLObjectBuilder<Status>) bf.<Status>getBuilderOrThrow(Status.DEFAULT_ELEMENT_NAME);
final SAMLObjectBuilder<Response> responseBuilder =
(SAMLObjectBuilder<Response>) bf.<Response>getBuilderOrThrow(Response.DEFAULT_ELEMENT_NAME);
final StatusCode statusCode = statusCodeBuilder.buildObject();
statusCode.setValue(StatusCode.SUCCESS);
final Status status = statusBuilder.buildObject();
status.setStatusCode(statusCode);
final Response response = responseBuilder.buildObject();
response.setID(idGenerator.generateIdentifier());
response.setIssueInstant(new DateTime(ISOChronology.getInstanceUTC()));
response.setStatus(status);
response.setVersion(SAMLVersion.VERSION_11);
profileRequestContext.getOutboundMessageContext().setMessage(response);
}
代码示例来源:origin: org.apereo.cas/cas-server-support-saml-idp-web
@Override
protected void doEncode() throws MessageEncodingException {
val messageContext = new MessageContext();
if (logoutRequest.isSigned()) {
val signingContext = messageContext.getSubcontext(SecurityParametersContext.class, true);
val signingParams = new SignatureSigningParameters();
val signature = logoutRequest.getSignature();
signingParams.setSigningCredential(signature.getSigningCredential());
signingParams.setSignatureAlgorithm(signature.getSignatureAlgorithm());
signingContext.setSignatureSigningParameters(signingParams);
}
removeSignature(logoutRequest);
val encodedMessage = deflateAndBase64Encode(logoutRequest);
messageContext.setMessage(logoutRequest);
this.redirectUrl = buildRedirectURL(messageContext, endpointUrl, encodedMessage);
}
代码示例来源:origin: net.shibboleth.idp/idp-profile-impl
/** {@inheritDoc} */
@Override
protected void doDecode() throws MessageDecodingException {
final HttpServletRequest request = getHttpServletRequest();
if (request == null) {
throw new MessageDecodingException("Unable to locate HttpServletRequest");
}
final ResolverTestRequest message = new ResolverTestRequest(getPrincipal(request), getRequesterId(request),
getIndex(request), getProtocol(request));
final MessageContext<ResolverTestRequest> messageContext = new MessageContext<>();
messageContext.setMessage(message);
setMessageContext(messageContext);
final SAMLPeerEntityContext peerCtx = new SAMLPeerEntityContext();
peerCtx.setRole(SPSSODescriptor.DEFAULT_ELEMENT_NAME);
peerCtx.setEntityId(message.getRequesterId());
messageContext.addSubcontext(peerCtx, true);
if (message.getProtocol() != null) {
messageContext.getSubcontext(SAMLProtocolContext.class, true).setProtocol(message.getProtocol());
}
}
代码示例来源:origin: net.shibboleth.idp/idp-profile-impl
/** {@inheritDoc} */
@Override
protected void doDecode() throws MessageDecodingException {
final HttpServletRequest request = getHttpServletRequest();
if (request == null) {
throw new MessageDecodingException("Unable to locate HttpServletRequest");
}
final MetadataQueryRequest message = new MetadataQueryRequest();
message.setEntityID(getEntityID(request));
message.setProtocol(getProtocol(request));
final MessageContext<MetadataQueryRequest> messageContext = new MessageContext<>();
messageContext.setMessage(message);
setMessageContext(messageContext);
final SAMLPeerEntityContext peerCtx = new SAMLPeerEntityContext();
peerCtx.setRole(SPSSODescriptor.DEFAULT_ELEMENT_NAME);
peerCtx.setEntityId(message.getEntityID());
messageContext.addSubcontext(peerCtx, true);
if (message.getProtocol() != null) {
messageContext.getSubcontext(SAMLProtocolContext.class, true).setProtocol(message.getProtocol());
}
}
内容来源于网络,如有侵权,请联系作者删除!