本文整理汇总了Java中org.opensaml.ws.transport.http.HttpServletResponseAdapter类的典型用法代码示例。如果您正苦于以下问题:Java HttpServletResponseAdapter类的具体用法?Java HttpServletResponseAdapter怎么用?Java HttpServletResponseAdapter使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
HttpServletResponseAdapter类属于org.opensaml.ws.transport.http包,在下文中一共展示了HttpServletResponseAdapter类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: decodeSamlMessage
import org.opensaml.ws.transport.http.HttpServletResponseAdapter; //导入依赖的package包/类
public static SAMLMessageContext decodeSamlMessage(HttpServletRequest request, HttpServletResponse response) throws Exception {
SAMLMessageContext<SAMLObject, SAMLObject, NameID> samlMessageContext =
new BasicSAMLMessageContext<SAMLObject, SAMLObject, NameID>();
HttpServletRequestAdapter httpServletRequestAdapter =
new HttpServletRequestAdapter(request);
samlMessageContext.setInboundMessageTransport(httpServletRequestAdapter);
samlMessageContext.setInboundSAMLProtocol(SAMLConstants.SAML20P_NS);
HttpServletResponseAdapter httpServletResponseAdapter =
new HttpServletResponseAdapter(response, request.isSecure());
samlMessageContext.setOutboundMessageTransport(httpServletResponseAdapter);
samlMessageContext.setPeerEntityRole(IDPSSODescriptor.DEFAULT_ELEMENT_NAME);
SecurityPolicyResolver securityPolicyResolver =
getSecurityPolicyResolver(request.isSecure());
samlMessageContext.setSecurityPolicyResolver(securityPolicyResolver);
HTTPPostDecoder samlMessageDecoder = new HTTPPostDecoder();
samlMessageDecoder.decode(samlMessageContext);
return samlMessageContext;
}
示例2: sendSAMLAuthRequest
import org.opensaml.ws.transport.http.HttpServletResponseAdapter; //导入依赖的package包/类
public void sendSAMLAuthRequest(HttpServletRequest request, HttpServletResponse
servletResponse, String spId, String acsUrl, String idpSSOUrl) throws Exception {
String redirectURL;
String idpUrl = idpSSOUrl;
AuthnRequest authnRequest = samlAuthnRequestBuilder.buildRequest(spId, acsUrl,
idpUrl);
// store SAML 2.0 authentication request
String key = SAMLRequestStore.getInstance().storeRequest();
authnRequest.setID(key);
log.debug("SAML Authentication message : {} ",
SAMLUtils.SAMLObjectToString(authnRequest));
redirectURL = messageEncoder.encode(authnRequest, idpUrl, request.getRequestURI());
HttpServletResponseAdapter responseAdapter =
new HttpServletResponseAdapter(servletResponse, request.isSecure());
HTTPTransportUtils.addNoCacheHeaders(responseAdapter);
HTTPTransportUtils.setUTF8Encoding(responseAdapter);
responseAdapter.sendRedirect(redirectURL);
}
示例3: redirectUserWithRequest
import org.opensaml.ws.transport.http.HttpServletResponseAdapter; //导入依赖的package包/类
private void redirectUserWithRequest(HttpServletResponse httpServletResponse, AuthnRequest authnRequest) {
HttpServletResponseAdapter responseAdapter = new HttpServletResponseAdapter(httpServletResponse, true);
BasicSAMLMessageContext<SAMLObject, AuthnRequest, SAMLObject> context = new BasicSAMLMessageContext<SAMLObject, AuthnRequest, SAMLObject>();
context.setPeerEntityEndpoint(getIPDEndpoint());
context.setOutboundSAMLMessage(authnRequest);
context.setOutboundMessageTransport(responseAdapter);
context.setOutboundSAMLMessageSigningCredential(SPCredentials.getCredential());
HTTPRedirectDeflateEncoder encoder = new HTTPRedirectDeflateEncoder();
logger.info("AuthnRequest: ");
OpenSAMLUtils.logSAMLObject(authnRequest);
logger.info("Redirecting to IDP");
try {
encoder.encode(context);
} catch (MessageEncodingException e) {
throw new RuntimeException(e);
}
}
示例4: renderMergedOutputModel
import org.opensaml.ws.transport.http.HttpServletResponseAdapter; //导入依赖的package包/类
@Override
protected void renderMergedOutputModel(
final Map<String, Object> model, final HttpServletRequest request, final HttpServletResponse response) throws Exception {
response.setCharacterEncoding(this.encoding);
final WebApplicationService service = this.samlArgumentExtractor.extractService(request);
final String serviceId = service != null ? service.getId() : "UNKNOWN";
try {
final Response samlResponse = newSamlObject(Response.class);
samlResponse.setID(generateId());
samlResponse.setIssueInstant(new DateTime());
samlResponse.setVersion(SAMLVersion.VERSION_11);
samlResponse.setRecipient(serviceId);
if (service instanceof SamlService) {
final SamlService samlService = (SamlService) service;
if (samlService.getRequestID() != null) {
samlResponse.setInResponseTo(samlService.getRequestID());
}
}
prepareResponse(samlResponse, model);
final BasicSAMLMessageContext messageContext = new BasicSAMLMessageContext();
messageContext.setOutboundMessageTransport(new HttpServletResponseAdapter(response, request.isSecure()));
messageContext.setOutboundSAMLMessage(samlResponse);
this.encoder.encode(messageContext);
} catch (final Exception e) {
logger.error("Error generating SAML response for service {}.", serviceId);
throw e;
}
}
示例5: testEncoding
import org.opensaml.ws.transport.http.HttpServletResponseAdapter; //导入依赖的package包/类
@SuppressWarnings("unchecked")
public void testEncoding() throws Exception {
SAMLObjectBuilder<Response> requestBuilder = (SAMLObjectBuilder<Response>) builderFactory
.getBuilder(Response.DEFAULT_ELEMENT_NAME);
Response samlMessage = requestBuilder.buildObject();
samlMessage.setID("foo");
samlMessage.setIssueInstant(new DateTime(0));
samlMessage.setVersion(SAMLVersion.VERSION_11);
SAMLObjectBuilder<Endpoint> endpointBuilder = (SAMLObjectBuilder<Endpoint>) builderFactory
.getBuilder(AssertionConsumerService.DEFAULT_ELEMENT_NAME);
Endpoint samlEndpoint = endpointBuilder.buildObject();
samlEndpoint.setLocation("http://example.org");
samlEndpoint.setResponseLocation("http://example.org/response");
HTTPPostEncoder encoder = new HTTPPostEncoder(velocityEngine,
"/templates/saml1-post-binding.vm");
MockHttpServletResponse response = new MockHttpServletResponse();
BasicSAMLMessageContext messageContext = new BasicSAMLMessageContext();
messageContext.setOutboundMessageTransport(new HttpServletResponseAdapter(response, false));
messageContext.setPeerEntityEndpoint(samlEndpoint);
messageContext.setOutboundSAMLMessage(samlMessage);
messageContext.setRelayState("relay");
encoder.encode(messageContext);
assertEquals("Unexpected content type", "text/html", response.getContentType());
assertEquals("Unexpected character encoding", response.getCharacterEncoding(), "UTF-8");
assertEquals("Unexpected cache controls", "no-cache, no-store", response.getHeader("Cache-control"));
assertEquals(-608085328, response.getContentAsString().hashCode());
}
示例6: testEncoding
import org.opensaml.ws.transport.http.HttpServletResponseAdapter; //导入依赖的package包/类
/** Tests encoding a simple SAML message. */
@SuppressWarnings("unchecked")
public void testEncoding() throws Exception {
SAMLObjectBuilder<Request> requestBuilder = (SAMLObjectBuilder<Request>) builderFactory
.getBuilder(Request.DEFAULT_ELEMENT_NAME);
Request request = requestBuilder.buildObject();
request.setID("foo");
request.setIssueInstant(new DateTime(0));
request.setVersion(SAMLVersion.VERSION_11);
SAMLObjectBuilder<Endpoint> endpointBuilder = (SAMLObjectBuilder<Endpoint>) builderFactory
.getBuilder(AssertionConsumerService.DEFAULT_ELEMENT_NAME);
Endpoint samlEndpoint = endpointBuilder.buildObject();
samlEndpoint.setLocation("http://example.org");
samlEndpoint.setResponseLocation("http://example.org/response");
MockHttpServletResponse response = new MockHttpServletResponse();
BasicSAMLMessageContext messageContext = new BasicSAMLMessageContext();
messageContext.setOutboundMessageTransport(new HttpServletResponseAdapter(response, false));
messageContext.setPeerEntityEndpoint(samlEndpoint);
messageContext.setOutboundSAMLMessage(request);
messageContext.setRelayState("relay");
HTTPSOAP11Encoder encoder = new HTTPSOAP11Encoder();
encoder.encode(messageContext);
assertEquals("Unexpected content type", "text/xml", response.getContentType());
assertEquals("Unexpected character encoding", response.getCharacterEncoding(), "UTF-8");
assertEquals("Unexpected cache controls", "no-cache, no-store", response.getHeader("Cache-control"));
assertEquals("http://www.oasis-open.org/committees/security", response.getHeader("SOAPAction"));
assertEquals(-280457420, response.getContentAsString().hashCode());
}
示例7: testRequestEncoding
import org.opensaml.ws.transport.http.HttpServletResponseAdapter; //导入依赖的package包/类
@SuppressWarnings("unchecked")
public void testRequestEncoding() throws Exception {
SAMLObjectBuilder<AuthnRequest> responseBuilder = (SAMLObjectBuilder<AuthnRequest>) builderFactory
.getBuilder(AuthnRequest.DEFAULT_ELEMENT_NAME);
AuthnRequest samlMessage = responseBuilder.buildObject();
samlMessage.setID("foo");
samlMessage.setVersion(SAMLVersion.VERSION_20);
samlMessage.setIssueInstant(new DateTime(0));
SAMLObjectBuilder<Endpoint> endpointBuilder = (SAMLObjectBuilder<Endpoint>) builderFactory
.getBuilder(AssertionConsumerService.DEFAULT_ELEMENT_NAME);
Endpoint samlEndpoint = endpointBuilder.buildObject();
samlEndpoint.setLocation("http://example.org");
samlEndpoint.setResponseLocation("http://example.org/response");
MockHttpServletResponse response = new MockHttpServletResponse();
HttpServletResponseAdapter outTransport = new HttpServletResponseAdapter(response, false);
BasicSAMLMessageContext messageContext = new BasicSAMLMessageContext();
messageContext.setOutboundMessageTransport(outTransport);
messageContext.setPeerEntityEndpoint(samlEndpoint);
messageContext.setOutboundSAMLMessage(samlMessage);
messageContext.setRelayState("relay");
HTTPPostEncoder encoder = new HTTPPostEncoder(velocityEngine,
"/templates/saml2-post-binding.vm");
encoder.encode(messageContext);
assertEquals("Unexpected content type", "text/html", response.getContentType());
assertEquals("Unexpected character encoding", response.getCharacterEncoding(), "UTF-8");
assertEquals("Unexpected cache controls", "no-cache, no-store", response.getHeader("Cache-control"));
assertEquals(-243324550, response.getContentAsString().hashCode());
}
示例8: testRequestEncoding
import org.opensaml.ws.transport.http.HttpServletResponseAdapter; //导入依赖的package包/类
@SuppressWarnings("unchecked")
public void testRequestEncoding() throws Exception {
SAMLObjectBuilder<AuthnRequest> responseBuilder = (SAMLObjectBuilder<AuthnRequest>) builderFactory
.getBuilder(AuthnRequest.DEFAULT_ELEMENT_NAME);
AuthnRequest samlMessage = responseBuilder.buildObject();
samlMessage.setID("foo");
samlMessage.setVersion(SAMLVersion.VERSION_20);
samlMessage.setIssueInstant(new DateTime(0));
SAMLObjectBuilder<Endpoint> endpointBuilder = (SAMLObjectBuilder<Endpoint>) builderFactory
.getBuilder(AssertionConsumerService.DEFAULT_ELEMENT_NAME);
Endpoint samlEndpoint = endpointBuilder.buildObject();
samlEndpoint.setLocation("http://example.org");
samlEndpoint.setResponseLocation("http://example.org/response");
MockHttpServletResponse response = new MockHttpServletResponse();
HttpServletResponseAdapter outTransport = new HttpServletResponseAdapter(response, false);
BasicSAMLMessageContext messageContext = new BasicSAMLMessageContext();
messageContext.setOutboundMessageTransport(outTransport);
messageContext.setPeerEntityEndpoint(samlEndpoint);
messageContext.setOutboundSAMLMessage(samlMessage);
messageContext.setRelayState("relay");
HTTPPostSimpleSignEncoder encoder = new HTTPPostSimpleSignEncoder(velocityEngine,
"/templates/saml2-post-simplesign-binding.vm");
encoder.encode(messageContext);
assertEquals("Unexpected content type", "text/html", response.getContentType());
assertEquals("Unexpected character encoding", response.getCharacterEncoding(), "UTF-8");
assertEquals("Unexpected cache controls", "no-cache, no-store", response.getHeader("Cache-control"));
assertEquals(-1110321790, response.getContentAsString().hashCode());
}
示例9: processRequest
import org.opensaml.ws.transport.http.HttpServletResponseAdapter; //导入依赖的package包/类
/** {@inheritDoc} */
public void processRequest(InTransport in, OutTransport out) throws ProfileException {
XMLObject metadata;
HttpServletRequest httpRequest = ((HttpServletRequestAdapter) in).getWrappedRequest();
HttpServletResponse httpResponse = ((HttpServletResponseAdapter) out).getWrappedResponse();
String acceptHeader = DatatypeHelper.safeTrimOrNullString(httpRequest.getHeader("Accept"));
if (acceptHeader != null && !acceptHeader.contains("application/samlmetadata+xml")) {
httpResponse.setContentType("application/xml");
} else {
httpResponse.setContentType("application/samlmetadata+xml");
}
try {
String requestedEntity =
DatatypeHelper.safeTrimOrNullString(((HttpServletRequestAdapter) in).getParameterValue("entity"));
if (requestedEntity != null) {
metadata = metadataProvider.getEntityDescriptor(requestedEntity);
} else {
metadata = metadataProvider.getMetadata();
}
if (metadata != null) {
Marshaller marshaller = Configuration.getMarshallerFactory().getMarshaller(metadata);
writeNode(marshaller.marshall(metadata), out.getOutgoingStream(), Charset.forName("UTF-8"));
}
} catch (Exception e) {
log.error("Unable to retrieve and return metadata", e);
throw new ProfileException(e);
}
}
示例10: buildInTransport
import org.opensaml.ws.transport.http.HttpServletResponseAdapter; //导入依赖的package包/类
/** {@inheritDoc} */
protected InTransport buildInTransport() {
//
// Encode the "outbound" message context, with simple signature
//
MockHttpServletResponse response = new MockHttpServletResponse();
HttpServletResponseAdapter outTransport = new HttpServletResponseAdapter(response, false);
SAMLObjectBuilder<Endpoint> endpointBuilder = (SAMLObjectBuilder<Endpoint>) builderFactory
.getBuilder(AssertionConsumerService.DEFAULT_ELEMENT_NAME);
Endpoint samlEndpoint = endpointBuilder.buildObject();
samlEndpoint.setLocation("http://example.org");
samlEndpoint.setResponseLocation("http://example.org/response");
BasicSAMLMessageContext outboundMessgeContext = new BasicSAMLMessageContext();
outboundMessgeContext.setOutboundMessageTransport(outTransport);
outboundMessgeContext.setOutboundSAMLMessage(buildInboundSAMLMessage());
outboundMessgeContext.setRelayState(expectedRelayValue);
outboundMessgeContext.setPeerEntityEndpoint(samlEndpoint);
outboundMessgeContext.setOutboundSAMLMessageSigningCredential(signingX509Cred);
HTTPRedirectDeflateEncoder encoder = new HTTPRedirectDeflateEncoder();
try {
encoder.encode(outboundMessgeContext);
} catch (MessageEncodingException e) {
fail("Could not encode outbound message context");
}
// Now populate the new "inbound" message context with the "outbound" encoded info
MockHttpServletRequest request = new MockHttpServletRequest();
HTTPInTransport inTransport = new HttpServletRequestAdapter(request);
request.setMethod("GET");
// The Spring mock object doesn't convert between the query params and the getParameter apparently,
// so have to set them both ways.
URLBuilder urlBuilder = new URLBuilder(response.getRedirectedUrl());
request.setQueryString(urlBuilder.buildQueryString());
for (Pair<String, String> param : urlBuilder.getQueryParams()) {
request.setParameter(param.getFirst(), param.getSecond());
}
return inTransport;
}
开发者ID:apigee,项目名称:java-opensaml2,代码行数:45,代码来源:SAML2HTTPRedirectDeflateSignatureSecurityPolicyRuleTest.java
示例11: testResponseEncoding
import org.opensaml.ws.transport.http.HttpServletResponseAdapter; //导入依赖的package包/类
/**
* Tests encoding a SAML message to an servlet response.
*
* @throws Exception
*/
@SuppressWarnings("unchecked")
public void testResponseEncoding() throws Exception {
SAMLObjectBuilder<StatusCode> statusCodeBuilder = (SAMLObjectBuilder<StatusCode>) builderFactory
.getBuilder(StatusCode.DEFAULT_ELEMENT_NAME);
StatusCode statusCode = statusCodeBuilder.buildObject();
statusCode.setValue(StatusCode.SUCCESS_URI);
SAMLObjectBuilder<Status> statusBuilder = (SAMLObjectBuilder<Status>) builderFactory
.getBuilder(Status.DEFAULT_ELEMENT_NAME);
Status responseStatus = statusBuilder.buildObject();
responseStatus.setStatusCode(statusCode);
SAMLObjectBuilder<Response> responseBuilder = (SAMLObjectBuilder<Response>) builderFactory
.getBuilder(Response.DEFAULT_ELEMENT_NAME);
Response samlMessage = responseBuilder.buildObject();
samlMessage.setID("foo");
samlMessage.setVersion(SAMLVersion.VERSION_20);
samlMessage.setIssueInstant(new DateTime(0));
samlMessage.setStatus(responseStatus);
SAMLObjectBuilder<Endpoint> endpointBuilder = (SAMLObjectBuilder<Endpoint>) builderFactory
.getBuilder(AssertionConsumerService.DEFAULT_ELEMENT_NAME);
Endpoint samlEndpoint = endpointBuilder.buildObject();
samlEndpoint.setLocation("http://example.org");
samlEndpoint.setResponseLocation("http://example.org/response");
MockHttpServletResponse response = new MockHttpServletResponse();
HttpServletResponseAdapter outTransport = new HttpServletResponseAdapter(response, false);
BasicSAMLMessageContext messageContext = new BasicSAMLMessageContext();
messageContext.setOutboundMessageTransport(outTransport);
messageContext.setPeerEntityEndpoint(samlEndpoint);
messageContext.setOutboundSAMLMessage(samlMessage);
messageContext.setRelayState("relay");
HTTPPostEncoder encoder = new HTTPPostEncoder(velocityEngine,
"/templates/saml2-post-binding.vm");
encoder.encode(messageContext);
assertEquals("Unexpected content type", "text/html", response.getContentType());
assertEquals("Unexpected character encoding", response.getCharacterEncoding(), "UTF-8");
assertEquals("Unexpected cache controls", "no-cache, no-store", response.getHeader("Cache-control"));
assertEquals(762244719, response.getContentAsString().hashCode());
}
示例12: testResponseEncoding
import org.opensaml.ws.transport.http.HttpServletResponseAdapter; //导入依赖的package包/类
/**
* Tests encoding a SAML message to an servlet response.
*
* @throws Exception
*/
@SuppressWarnings("unchecked")
public void testResponseEncoding() throws Exception {
SAMLObjectBuilder<StatusCode> statusCodeBuilder = (SAMLObjectBuilder<StatusCode>) builderFactory
.getBuilder(StatusCode.DEFAULT_ELEMENT_NAME);
StatusCode statusCode = statusCodeBuilder.buildObject();
statusCode.setValue(StatusCode.SUCCESS_URI);
SAMLObjectBuilder<Status> statusBuilder = (SAMLObjectBuilder<Status>) builderFactory
.getBuilder(Status.DEFAULT_ELEMENT_NAME);
Status responseStatus = statusBuilder.buildObject();
responseStatus.setStatusCode(statusCode);
SAMLObjectBuilder<Response> responseBuilder = (SAMLObjectBuilder<Response>) builderFactory
.getBuilder(Response.DEFAULT_ELEMENT_NAME);
Response samlMessage = responseBuilder.buildObject();
samlMessage.setID("foo");
samlMessage.setVersion(SAMLVersion.VERSION_20);
samlMessage.setIssueInstant(new DateTime(0));
samlMessage.setStatus(responseStatus);
SAMLObjectBuilder<Endpoint> endpointBuilder = (SAMLObjectBuilder<Endpoint>) builderFactory
.getBuilder(AssertionConsumerService.DEFAULT_ELEMENT_NAME);
Endpoint samlEndpoint = endpointBuilder.buildObject();
samlEndpoint.setLocation("http://example.org");
samlEndpoint.setResponseLocation("http://example.org/response");
MockHttpServletResponse response = new MockHttpServletResponse();
HttpServletResponseAdapter outTransport = new HttpServletResponseAdapter(response, false);
BasicSAMLMessageContext messageContext = new BasicSAMLMessageContext();
messageContext.setOutboundMessageTransport(outTransport);
messageContext.setOutboundSAMLMessage(samlMessage);
messageContext.setPeerEntityEndpoint(samlEndpoint);
messageContext.setRelayState("relay");
HTTPRedirectDeflateEncoder encoder = new HTTPRedirectDeflateEncoder();
encoder.encode(messageContext);
assertEquals("Unexpected character encoding", response.getCharacterEncoding(), "UTF-8");
assertEquals("Unexpected cache controls", "no-cache, no-store", response.getHeader("Cache-control"));
assertEquals(406515062, response.getRedirectedUrl().hashCode());
}
示例13: testResponseEncodingWithSimpleSign
import org.opensaml.ws.transport.http.HttpServletResponseAdapter; //导入依赖的package包/类
/**
* Tests encoding a SAML message to an servlet response with simple sign.
*
* @throws Exception
*/
@SuppressWarnings("unchecked")
public void testResponseEncodingWithSimpleSign() throws Exception {
SAMLObjectBuilder<StatusCode> statusCodeBuilder = (SAMLObjectBuilder<StatusCode>) builderFactory
.getBuilder(StatusCode.DEFAULT_ELEMENT_NAME);
StatusCode statusCode = statusCodeBuilder.buildObject();
statusCode.setValue(StatusCode.SUCCESS_URI);
SAMLObjectBuilder<Status> statusBuilder = (SAMLObjectBuilder<Status>) builderFactory
.getBuilder(Status.DEFAULT_ELEMENT_NAME);
Status responseStatus = statusBuilder.buildObject();
responseStatus.setStatusCode(statusCode);
SAMLObjectBuilder<Response> responseBuilder = (SAMLObjectBuilder<Response>) builderFactory
.getBuilder(Response.DEFAULT_ELEMENT_NAME);
Response samlMessage = responseBuilder.buildObject();
samlMessage.setID("foo");
samlMessage.setVersion(SAMLVersion.VERSION_20);
samlMessage.setIssueInstant(new DateTime(0));
samlMessage.setStatus(responseStatus);
SAMLObjectBuilder<Endpoint> endpointBuilder = (SAMLObjectBuilder<Endpoint>) builderFactory
.getBuilder(AssertionConsumerService.DEFAULT_ELEMENT_NAME);
Endpoint samlEndpoint = endpointBuilder.buildObject();
samlEndpoint.setLocation("http://example.org");
samlEndpoint.setResponseLocation("http://example.org/response");
MockHttpServletResponse response = new MockHttpServletResponse();
HttpServletResponseAdapter outTransport = new HttpServletResponseAdapter(response, false);
BasicSAMLMessageContext messageContext = new BasicSAMLMessageContext();
messageContext.setOutboundMessageTransport(outTransport);
messageContext.setOutboundSAMLMessage(samlMessage);
messageContext.setPeerEntityEndpoint(samlEndpoint);
messageContext.setRelayState("relay");
KeyPair kp = SecurityTestHelper.generateKeyPair("RSA", 1024, null);
messageContext.setOutboundSAMLMessageSigningCredential(
SecurityHelper.getSimpleCredential(kp.getPublic(), kp.getPrivate()));
HTTPRedirectDeflateEncoder encoder = new HTTPRedirectDeflateEncoder();
encoder.encode(messageContext);
String queryString = new URL(response.getRedirectedUrl()).getQuery();
assertNotNull("Signature parameter was not found",
HTTPTransportUtils.getRawQueryStringParameter(queryString, "Signature"));
assertNotNull("SigAlg parameter was not found",
HTTPTransportUtils.getRawQueryStringParameter(queryString, "SigAlg"));
// Note: to test that actual signature is cryptographically correct, really need a known good test vector.
// Need to verify that we're signing over the right data in the right byte[] encoded form.
}
示例14: testResponseEncoding
import org.opensaml.ws.transport.http.HttpServletResponseAdapter; //导入依赖的package包/类
/**
* Tests encoding a SAML message to an servlet response.
*
* @throws Exception
*/
@SuppressWarnings("unchecked")
public void testResponseEncoding() throws Exception {
SAMLObjectBuilder<StatusCode> statusCodeBuilder = (SAMLObjectBuilder<StatusCode>) builderFactory
.getBuilder(StatusCode.DEFAULT_ELEMENT_NAME);
StatusCode statusCode = statusCodeBuilder.buildObject();
statusCode.setValue(StatusCode.SUCCESS_URI);
SAMLObjectBuilder<Status> statusBuilder = (SAMLObjectBuilder<Status>) builderFactory
.getBuilder(Status.DEFAULT_ELEMENT_NAME);
Status responseStatus = statusBuilder.buildObject();
responseStatus.setStatusCode(statusCode);
SAMLObjectBuilder<Response> responseBuilder = (SAMLObjectBuilder<Response>) builderFactory
.getBuilder(Response.DEFAULT_ELEMENT_NAME);
Response samlMessage = responseBuilder.buildObject();
samlMessage.setID("foo");
samlMessage.setVersion(SAMLVersion.VERSION_20);
samlMessage.setIssueInstant(new DateTime(0));
samlMessage.setStatus(responseStatus);
SAMLObjectBuilder<Endpoint> endpointBuilder = (SAMLObjectBuilder<Endpoint>) builderFactory
.getBuilder(AssertionConsumerService.DEFAULT_ELEMENT_NAME);
Endpoint samlEndpoint = endpointBuilder.buildObject();
samlEndpoint.setLocation("http://example.org");
samlEndpoint.setResponseLocation("http://example.org/response");
MockHttpServletResponse response = new MockHttpServletResponse();
HttpServletResponseAdapter outTransport = new HttpServletResponseAdapter(response, false);
BasicSAMLMessageContext messageContext = new BasicSAMLMessageContext();
messageContext.setOutboundMessageTransport(outTransport);
messageContext.setPeerEntityEndpoint(samlEndpoint);
messageContext.setOutboundSAMLMessage(samlMessage);
messageContext.setRelayState("relay");
HTTPSOAP11Encoder encoder = new HTTPSOAP11Encoder();
encoder.encode(messageContext);
assertEquals("Unexpected content type", "text/xml", response.getContentType());
assertEquals("Unexpected character encoding", response.getCharacterEncoding(), "UTF-8");
assertEquals("Unexpected cache controls", "no-cache, no-store", response.getHeader("Cache-control"));
assertEquals("http://www.oasis-open.org/committees/security", response.getHeader("SOAPAction"));
assertEquals(1568886506, response.getContentAsString().hashCode());
}
示例15: testResponseEncoding
import org.opensaml.ws.transport.http.HttpServletResponseAdapter; //导入依赖的package包/类
/**
* Tests encoding a SAML message to an servlet response.
*
* @throws Exception
*/
@SuppressWarnings("unchecked")
public void testResponseEncoding() throws Exception {
SAMLObjectBuilder<StatusCode> statusCodeBuilder = (SAMLObjectBuilder<StatusCode>) builderFactory
.getBuilder(StatusCode.DEFAULT_ELEMENT_NAME);
StatusCode statusCode = statusCodeBuilder.buildObject();
statusCode.setValue(StatusCode.SUCCESS_URI);
SAMLObjectBuilder<Status> statusBuilder = (SAMLObjectBuilder<Status>) builderFactory
.getBuilder(Status.DEFAULT_ELEMENT_NAME);
Status responseStatus = statusBuilder.buildObject();
responseStatus.setStatusCode(statusCode);
SAMLObjectBuilder<Response> responseBuilder = (SAMLObjectBuilder<Response>) builderFactory
.getBuilder(Response.DEFAULT_ELEMENT_NAME);
Response samlMessage = responseBuilder.buildObject();
samlMessage.setID("foo");
samlMessage.setVersion(SAMLVersion.VERSION_20);
samlMessage.setIssueInstant(new DateTime(0));
samlMessage.setStatus(responseStatus);
SAMLObjectBuilder<Endpoint> endpointBuilder = (SAMLObjectBuilder<Endpoint>) builderFactory
.getBuilder(AssertionConsumerService.DEFAULT_ELEMENT_NAME);
Endpoint samlEndpoint = endpointBuilder.buildObject();
samlEndpoint.setLocation("http://example.org");
samlEndpoint.setResponseLocation("http://example.org/response");
MockHttpServletResponse response = new MockHttpServletResponse();
HttpServletResponseAdapter outTransport = new HttpServletResponseAdapter(response, false);
BasicSAMLMessageContext messageContext = new BasicSAMLMessageContext();
messageContext.setOutboundMessageTransport(outTransport);
messageContext.setPeerEntityEndpoint(samlEndpoint);
messageContext.setOutboundSAMLMessage(samlMessage);
messageContext.setRelayState("relay");
HTTPPostSimpleSignEncoder encoder = new HTTPPostSimpleSignEncoder(velocityEngine,
"/templates/saml2-post-simplesign-binding.vm");
encoder.encode(messageContext);
assertEquals("Unexpected content type", "text/html", response.getContentType());
assertEquals("Unexpected character encoding", response.getCharacterEncoding(), "UTF-8");
assertEquals("Unexpected cache controls", "no-cache, no-store", response.getHeader("Cache-control"));
assertEquals(-1652577171, response.getContentAsString().hashCode());
}