当前位置: 首页>>代码示例>>Java>>正文


Java MessageContext.getMessage方法代码示例

本文整理汇总了Java中org.opensaml.messaging.context.MessageContext.getMessage方法的典型用法代码示例。如果您正苦于以下问题:Java MessageContext.getMessage方法的具体用法?Java MessageContext.getMessage怎么用?Java MessageContext.getMessage使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.opensaml.messaging.context.MessageContext的用法示例。


在下文中一共展示了MessageContext.getMessage方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: doEncode

import org.opensaml.messaging.context.MessageContext; //导入方法依赖的package包/类
@Override
protected void doEncode() throws MessageEncodingException {
    final MessageContext messageContext = this.getMessageContext();
    final SAMLObject outboundMessage = (SAMLObject)messageContext.getMessage();
    final String endpointURL = this.getEndpointURL(messageContext).toString();
    
    if (!this.forceSignRedirectBindingAuthnRequest) {
        this.removeSignature(outboundMessage);
    }
    
    final String encodedMessage = this.deflateAndBase64Encode(outboundMessage);
    final String redirectURL = this.buildRedirectURL(messageContext, endpointURL, encodedMessage);

    responseAdapter.init();
    responseAdapter.setRedirectUrl(redirectURL);
}
 
开发者ID:yaochi,项目名称:pac4j-plus,代码行数:17,代码来源:Pac4jHTTPRedirectDeflateEncoder.java

示例2: testRequestDecoding

import org.opensaml.messaging.context.MessageContext; //导入方法依赖的package包/类
@Test
public void testRequestDecoding() throws MessageDecodingException, IOException {
    byte[] bytes = Files.toByteArray(new File("src/test/resources/org/geant/idpextension/oidc/decoding/impl/client-registration-request.json"));
    httpRequest.setContent(bytes);
    httpRequest.setContentType("application/json");
    decoder.decode();
    final MessageContext<OIDCClientRegistrationRequest> messageContext = decoder
            .getMessageContext();
    final OIDCClientRegistrationRequest message = messageContext.getMessage();
    // We are not testing nimbus itself here, i.e. we are happy to decode
    // one parameter successfully
    Assert.assertEquals(message.getClientMetadata().getName(), "My Example");
}
 
开发者ID:CSCfi,项目名称:shibboleth-idp-oidc-extension,代码行数:14,代码来源:OIDCClientRegistrationRequestDecoderTest.java

示例3: apply

import org.opensaml.messaging.context.MessageContext; //导入方法依赖的package包/类
/** {@inheritDoc} */
@Override
public OIDCClientMetadata apply(ProfileRequestContext input) {
    final MessageContext msgCtx = input.getInboundMessageContext();
    if (msgCtx != null) {
        Object message = msgCtx.getMessage();
        if (message != null && msgCtx.getMessage() instanceof OIDCClientRegistrationRequest) {
            return ((OIDCClientRegistrationRequest)message).getOIDCClientMetadata();
        }
    }
    log.debug("No request OIDCClientMetadata found from the profile request context!");
    return null;
}
 
开发者ID:CSCfi,项目名称:shibboleth-idp-oidc-extension,代码行数:14,代码来源:OIDCClientRegistrationRequestMetadataLookupFunction.java

示例4: decodeSamlContextFromHttpRequest

import org.opensaml.messaging.context.MessageContext; //导入方法依赖的package包/类
/**
 * Decode authentication request saml object.
 *
 * @param request the request
 * @param decoder the decoder
 * @param clazz   the clazz
 * @return the saml object
 */
protected Pair<? extends SignableSAMLObject, MessageContext> decodeSamlContextFromHttpRequest(final HttpServletRequest request,
                                                                                              final BaseHttpServletRequestXMLMessageDecoder decoder,
                                                                                              final Class<? extends SignableSAMLObject> clazz) {
    LOGGER.info("Received SAML profile request [{}]", request.getRequestURI());

    try {
        decoder.setHttpServletRequest(request);
        decoder.setParserPool(this.parserPool);
        decoder.initialize();
        decoder.decode();

        final MessageContext messageContext = decoder.getMessageContext();
        final SignableSAMLObject object = (SignableSAMLObject) messageContext.getMessage();

        if (object == null) {
            throw new SAMLException("No " + clazz.getName() + " could be found in this request context. Decoder has failed.");
        }

        if (!clazz.isAssignableFrom(object.getClass())) {
            throw new ClassCastException("SAML object [" + object.getClass().getName() + " type does not match " + clazz);
        }

        LOGGER.debug("Decoded SAML object [{}] from http request", object.getElementQName());
        return Pair.of(object, messageContext);
    } catch (final Exception e) {
        throw Throwables.propagate(e);
    }
}
 
开发者ID:mrluo735,项目名称:cas-5.1.0,代码行数:37,代码来源:AbstractSamlProfileHandlerController.java

示例5: doEncode

import org.opensaml.messaging.context.MessageContext; //导入方法依赖的package包/类
@Override
protected void doEncode() throws MessageEncodingException {
    MessageContext<SAMLObject> messageContext = getMessageContext();

    SAMLObject outboundMessage = messageContext.getMessage();
    if (outboundMessage == null) {
        throw new MessageEncodingException("No outbound SAML message contained in message context");
    }

    String endpointURL = getEndpointURL(messageContext).toString();

    postEncode(messageContext, endpointURL);
}
 
开发者ID:yaochi,项目名称:pac4j-plus,代码行数:14,代码来源:Pac4jHTTPPostEncoder.java

示例6: populateVelocityContext

import org.opensaml.messaging.context.MessageContext; //导入方法依赖的package包/类
/**
 * Populate the Velocity context instance which will be used to render the POST body.
 *
 * @param velocityContext the Velocity context instance to populate with data
 * @param messageContext the SAML message context source of data
 * @param endpointURL endpoint URL to which to encode message
 * @throws MessageEncodingException thrown if there is a problem encoding the message
 */
protected void populateVelocityContext(VelocityContext velocityContext, MessageContext<SAMLObject> messageContext,
                                       String endpointURL) throws MessageEncodingException {

    String encodedEndpointURL = HTMLEncoder.encodeForHTMLAttribute(endpointURL);
    log.debug("Encoding action url of '{}' with encoded value '{}'", endpointURL, encodedEndpointURL);
    velocityContext.put("action", encodedEndpointURL);
    velocityContext.put("binding", getBindingURI());

    SAMLObject outboundMessage = messageContext.getMessage();

    log.debug("Marshalling and Base64 encoding SAML message");
    Element domMessage = marshallMessage(outboundMessage);

    try {
        String messageXML = SerializeSupport.nodeToString(domMessage);
        String encodedMessage = Base64Support.encode(messageXML.getBytes("UTF-8"), Base64Support.UNCHUNKED);
        if (outboundMessage instanceof RequestAbstractType) {
            velocityContext.put("SAMLRequest", encodedMessage);
        } else if (outboundMessage instanceof StatusResponseType) {
            velocityContext.put("SAMLResponse", encodedMessage);
        } else {
            throw new MessageEncodingException(
                    "SAML message is neither a SAML RequestAbstractType or StatusResponseType");
        }
    } catch (UnsupportedEncodingException e) {
        throw new MessageEncodingException("Unable to encode message, UTF-8 encoding is not supported");
    }

    String relayState = SAMLBindingSupport.getRelayState(messageContext);
    if (SAMLBindingSupport.checkRelayState(relayState)) {
        String encodedRelayState = HTMLEncoder.encodeForHTMLAttribute(relayState);
        log.debug("Setting RelayState parameter to: '{}', encoded as '{}'", relayState, encodedRelayState);
        velocityContext.put("RelayState", encodedRelayState);
    }
}
 
开发者ID:yaochi,项目名称:pac4j-plus,代码行数:44,代码来源:Pac4jHTTPPostEncoder.java

示例7: doExecute

import org.opensaml.messaging.context.MessageContext; //导入方法依赖的package包/类
@Nonnull
@Override
protected Event doExecute(
        final @Nonnull RequestContext springRequestContext,
        final @Nonnull ProfileRequestContext<SAMLObject, Object> profileRequestContext) {

    final ParameterMap params = springRequestContext.getRequestParameters();
    final String service = params.get(SamlParam.TARGET.name());
    if (service == null) {
        return ProtocolError.ServiceNotSpecified.event(this);
    }

    // Extract ticket from SAML request
    final MessageContext<SAMLObject> msgContext = profileRequestContext.getInboundMessageContext();
    String ticket = null;
    if (msgContext.getMessage() instanceof Request) {
        final Request request = ((Request) msgContext.getMessage());
        for (AssertionArtifact artifact : request.getAssertionArtifacts()) {
            ticket = artifact.getAssertionArtifact();
            break;
        }
    } else {
        log.info("Unexpected SAMLObject type {}", msgContext.getMessage().getClass().getName());
        return ProtocolError.ProtocolViolation.event(this);
    }
    if (ticket == null) {
        return ProtocolError.TicketNotSpecified.event(this);
    }
    final TicketValidationRequest ticketValidationRequest = new TicketValidationRequest(service, ticket);

    final String renew = params.get(ProtocolParam.Renew.id());
    if (renew != null) {
        ticketValidationRequest.setRenew(true);
    }

    FlowStateSupport.setTicketValidationRequest(springRequestContext, ticketValidationRequest);
    return ActionSupport.buildProceedEvent(this);
}
 
开发者ID:serac,项目名称:shibboleth-idp-ext-cas,代码行数:39,代码来源:ProcessSamlMessageAction.java

示例8: buildRedirectURL

import org.opensaml.messaging.context.MessageContext; //导入方法依赖的package包/类
/**
 * Builds the URL to redirect the client to.
 *
 * @param messageContext current message context
 * @param endpoint endpoint URL to send encoded message to
 * @param message Deflated and Base64 encoded message
 *
 * @return URL to redirect client to
 *
 * @throws MessageEncodingException thrown if the SAML message is neither a RequestAbstractType or Response
 */
protected String buildRedirectURL(MessageContext<SAMLObject> messageContext, String endpoint, String message)
        throws MessageEncodingException {
    log.debug("Building URL to redirect client to");

    URLBuilder urlBuilder = null;
    try {
        urlBuilder = new URLBuilder(endpoint);
    } catch (MalformedURLException e) {
        throw new MessageEncodingException("Endpoint URL " + endpoint + " is not a valid URL", e);
    }

    List<Pair<String, String>> queryParams = urlBuilder.getQueryParams();
    queryParams.clear();

    SAMLObject outboundMessage = messageContext.getMessage();

    if (outboundMessage instanceof RequestAbstractType) {
        queryParams.add(new Pair<>("SAMLRequest", message));
    } else if (outboundMessage instanceof StatusResponseType) {
        queryParams.add(new Pair<>("SAMLResponse", message));
    } else {
        throw new MessageEncodingException(
                "SAML message is neither a SAML RequestAbstractType or StatusResponseType");
    }

    String relayState = SAMLBindingSupport.getRelayState(messageContext);
    if (SAMLBindingSupport.checkRelayState(relayState)) {
        queryParams.add(new Pair<>("RelayState", relayState));
    }

    SignatureSigningParameters signingParameters =
            SAMLMessageSecuritySupport.getContextSigningParameters(messageContext);
    if (signingParameters != null && signingParameters.getSigningCredential() != null) {
        String sigAlgURI =  getSignatureAlgorithmURI(signingParameters);
        Pair<String, String> sigAlg = new Pair<>("SigAlg", sigAlgURI);
        queryParams.add(sigAlg);
        String sigMaterial = urlBuilder.buildQueryString();

        queryParams.add(new Pair<>("Signature", generateSignature(
                signingParameters.getSigningCredential(), sigAlgURI, sigMaterial)));
    } else {
        log.debug("No signing credential was supplied, skipping HTTP-Redirect DEFLATE signing");
    }

    return urlBuilder.buildURL();
}
 
开发者ID:yaochi,项目名称:pac4j-plus,代码行数:58,代码来源:Pac4jHTTPRedirectDeflateEncoder.java


注:本文中的org.opensaml.messaging.context.MessageContext.getMessage方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。