本文整理了Java中org.opensaml.messaging.context.MessageContext.<init>()
方法的一些代码示例,展示了MessageContext.<init>()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。MessageContext.<init>()
方法的具体详情如下:
包路径:org.opensaml.messaging.context.MessageContext
类名称:MessageContext
方法名:<init>
暂无
代码示例来源:origin: line/armeria
final T message = (T) fromDeflatedBase64(parameters.getFirstValue(name));
final MessageContext<T> messageContext = new MessageContext<>();
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 MessageContext<AuthnRequest> messageContext = new MessageContext<>();
messageContext.setMessage(request);
return new MessageContextAndIdpConfig(messageContext, idp);
代码示例来源:origin: org.apereo.cas/cas-server-support-saml-idp-web
private static MessageContext<SAMLObject> bindRelayStateParameter(final HttpServletRequest request) {
val messageContext = new MessageContext<SAMLObject>();
val relayState = request.getParameter(SamlProtocolConstants.PARAMETER_SAML_RELAY_STATE);
LOGGER.debug("Relay state is [{}]", relayState);
SAMLBindingSupport.setRelayState(messageContext, relayState);
return messageContext;
}
代码示例来源: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-saml-impl
/** {@inheritDoc} */
protected void doDecode() throws MessageDecodingException {
MessageContext<SAMLObject> messageContext = new MessageContext<>();
HttpServletRequest request = getHttpServletRequest();
String relayState = StringSupport.trim(request.getParameter("RelayState"));
log.debug("Decoded SAML relay state of: {}", relayState);
SAMLBindingSupport.setRelayState(messageContext, relayState);
processArtifact(messageContext, request);
populateBindingContext(messageContext);
setMessageContext(messageContext);
}
代码示例来源:origin: net.shibboleth.idp/idp-saml-impl
/** {@inheritDoc} */
@Override protected void doExecute(@Nonnull final ProfileRequestContext profileRequestContext) {
final MessageContext msgCtx = new MessageContext();
profileRequestContext.setInboundMessageContext(msgCtx);
final SAMLPeerEntityContext peerContext = msgCtx.getSubcontext(SAMLPeerEntityContext.class, true);
peerContext.setEntityId(saml2Session.getId());
log.debug("{} Initialized inbound message context for logout of {}", getLogPrefix(), saml2Session.getId());
}
代码示例来源: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: org.opensaml/opensaml-saml-impl
/** {@inheritDoc} */
protected void doDecode() throws MessageDecodingException {
MessageContext<SAMLObject> messageContext = new MessageContext<>();
HttpServletRequest request = getHttpServletRequest();
decodeTarget(messageContext, request);
processArtifacts(messageContext, request);
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: 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.jasig.cas/cas-server-support-saml
/**
* Encode response and pass it onto the outbound transport.
* Uses {@link CasHttpSoap11Encoder} to handle encoding.
*
* @param httpResponse the http response
* @param httpRequest the http request
* @param samlMessage the saml response
* @throws Exception the exception in case encoding fails.
*/
public void encodeSamlResponse(final HttpServletResponse httpResponse,
final HttpServletRequest httpRequest,
final Response samlMessage) throws Exception {
final HTTPSOAP11Encoder encoder = new CasHttpSoap11Encoder();
final MessageContext<SAMLObject> context = new MessageContext();
context.setMessage(samlMessage);
encoder.setHttpServletResponse(httpResponse);
encoder.setMessageContext(context);
encoder.initialize();
encoder.prepareContext();
encoder.encode();
}
}
代码示例来源:origin: net.shibboleth.idp/idp-cas-impl
@Override
protected Event doExecute(
final @Nonnull RequestContext springRequestContext,
final @Nonnull ProfileRequestContext profileRequestContext) {
final MessageContext<SAMLObject> msgContext = new MessageContext<>();
try {
msgContext.setMessage(buildSamlResponse(springRequestContext, profileRequestContext));
} catch (final IllegalStateException e) {
return ProtocolError.IllegalState.event(this);
}
final SAMLBindingContext bindingContext = new SAMLBindingContext();
bindingContext.setBindingUri(SAMLConstants.SAML1_SOAP11_BINDING_URI);
msgContext.addSubcontext(bindingContext);
// Ensure message uses SOAP-ENV ns prefix required by old/broken CAS clients
final Envelope envelope = (Envelope) XMLObjectSupport.buildXMLObject(envelopeName);
envelope.setBody((Body) XMLObjectSupport.buildXMLObject(bodyName));
final SOAP11Context soapCtx = new SOAP11Context();
soapCtx.setEnvelope(envelope);
msgContext.addSubcontext(soapCtx);
profileRequestContext.setOutboundMessageContext(msgContext);
return ActionSupport.buildProceedEvent(this);
}
代码示例来源:origin: net.shibboleth.idp/idp-saml-impl
/** {@inheritDoc} */
@Override protected void doExecute(@Nonnull final ProfileRequestContext profileRequestContext) {
final MessageContext msgCtx = new MessageContext();
profileRequestContext.setOutboundMessageContext(msgCtx);
final SAMLSelfEntityContext selfContext = msgCtx.getSubcontext(SAMLSelfEntityContext.class, true);
selfContext.setEntityId(selfIdentityLookupStrategy.apply(profileRequestContext));
final SAMLPeerEntityContext peerContext = msgCtx.getSubcontext(SAMLPeerEntityContext.class, true);
peerContext.setEntityId(peerEntityCtx.getEntityId());
final SAMLMetadataContext inboundMetadataCtx = peerEntityCtx.getSubcontext(SAMLMetadataContext.class);
if (inboundMetadataCtx != null) {
final SAMLMetadataContext outboundMetadataCtx = peerContext.getSubcontext(SAMLMetadataContext.class, true);
outboundMetadataCtx.setEntityDescriptor(inboundMetadataCtx.getEntityDescriptor());
outboundMetadataCtx.setRoleDescriptor(inboundMetadataCtx.getRoleDescriptor());
final AttributeConsumingServiceContext acsCtx =
inboundMetadataCtx.getSubcontext(AttributeConsumingServiceContext.class);
if (null != acsCtx) {
outboundMetadataCtx.getSubcontext(AttributeConsumingServiceContext.class, true)
.setAttributeConsumingService(acsCtx.getAttributeConsumingService());
}
}
log.debug("{} Initialized outbound message context", getLogPrefix());
}
}
代码示例来源: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());
}
}
内容来源于网络,如有侵权,请联系作者删除!