本文整理汇总了Java中org.opensaml.common.SAMLObjectBuilder.buildObject方法的典型用法代码示例。如果您正苦于以下问题:Java SAMLObjectBuilder.buildObject方法的具体用法?Java SAMLObjectBuilder.buildObject怎么用?Java SAMLObjectBuilder.buildObject使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.opensaml.common.SAMLObjectBuilder
的用法示例。
在下文中一共展示了SAMLObjectBuilder.buildObject方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: generate
import org.opensaml.common.SAMLObjectBuilder; //导入方法依赖的package包/类
@SuppressWarnings("unchecked")
public MetadataProvider generate(final SAMLConfig configuration) throws MetadataProviderException, ResourceException {
SAMLObjectBuilder<EntityDescriptor> builder = (SAMLObjectBuilder<EntityDescriptor>) builderFactory.getBuilder(EntityDescriptor.DEFAULT_ELEMENT_NAME);
EntityDescriptor descriptor = builder.buildObject();
descriptor.setID(configuration.getIdpEntityId());
descriptor.setEntityID(configuration.getIdpEntityId());
descriptor.getRoleDescriptors().add(buildIDPSSODescriptor(configuration));
MetadataMemoryProvider memoryProvider = new MetadataMemoryProvider(descriptor);
memoryProvider.initialize();
ExtendedMetadata extendedMetadata = new ExtendedMetadata();
extendedMetadata.setSigningKey(configuration.getIdpEntityId());
ExtendedMetadataDelegate idpMetadataProvider = new ExtendedMetadataDelegate(memoryProvider, extendedMetadata);
idpMetadataProvider.setMetadataRequireSignature(false);
idpMetadataProvider.initialize();
return idpMetadataProvider;
}
示例2: buildIDPSSODescriptor
import org.opensaml.common.SAMLObjectBuilder; //导入方法依赖的package包/类
@SuppressWarnings("unchecked")
private IDPSSODescriptor buildIDPSSODescriptor(final SAMLConfig configuration) {
SAMLObjectBuilder<IDPSSODescriptor> builder = (SAMLObjectBuilder<IDPSSODescriptor>) builderFactory.getBuilder(IDPSSODescriptor.DEFAULT_ELEMENT_NAME);
IDPSSODescriptor idpDescriptor = builder.buildObject();
idpDescriptor.setWantAuthnRequestsSigned(false);
idpDescriptor.addSupportedProtocol(SAMLConstants.SAML20P_NS);
idpDescriptor.getSingleSignOnServices().add(getSingleSignOnService(configuration, SAMLConstants.SAML2_REDIRECT_BINDING_URI));
idpDescriptor.getSingleLogoutServices().add(getSingleLogoutService(configuration, SAMLConstants.SAML2_REDIRECT_BINDING_URI));
return idpDescriptor;
}
示例3: getSingleSignOnService
import org.opensaml.common.SAMLObjectBuilder; //导入方法依赖的package包/类
@SuppressWarnings("unchecked")
private SingleSignOnService getSingleSignOnService(final SAMLConfig configuration, final String binding) {
SAMLObjectBuilder<SingleSignOnService> builder = (SAMLObjectBuilder<SingleSignOnService>) builderFactory.getBuilder(SingleSignOnService.DEFAULT_ELEMENT_NAME);
SingleSignOnService service = builder.buildObject();
service.setBinding(binding);
service.setLocation(configuration.getLoginUrl());
return service;
}
示例4: getSingleLogoutService
import org.opensaml.common.SAMLObjectBuilder; //导入方法依赖的package包/类
@SuppressWarnings("unchecked")
private SingleLogoutService getSingleLogoutService(final SAMLConfig configuration, final String binding) {
SAMLObjectBuilder<SingleLogoutService> builder = (SAMLObjectBuilder<SingleLogoutService>) builderFactory.getBuilder(SingleLogoutService.DEFAULT_ELEMENT_NAME);
SingleLogoutService service = builder.buildObject();
service.setBinding(binding);
service.setLocation(configuration.getLogoutUrl());
return service;
}
示例5: getMetadata
import org.opensaml.common.SAMLObjectBuilder; //导入方法依赖的package包/类
/**
* Gets the metadata from every registered provider and places each within a newly created EntitiesDescriptor.
*
* {@inheritDoc}
*/
public XMLObject getMetadata() throws MetadataProviderException {
XMLObjectBuilderFactory builderFactory = Configuration.getBuilderFactory();
SAMLObjectBuilder<EntitiesDescriptor> builder = (SAMLObjectBuilder<EntitiesDescriptor>) builderFactory
.getBuilder(EntitiesDescriptor.DEFAULT_ELEMENT_NAME);
EntitiesDescriptor metadataRoot = builder.buildObject();
Lock readLock = providerLock.readLock();
readLock.lock();
XMLObject providerMetadata;
try {
for (MetadataProvider provider : providers) {
providerMetadata = provider.getMetadata();
if (providerMetadata instanceof EntitiesDescriptor) {
metadataRoot.getEntitiesDescriptors().add((EntitiesDescriptor) providerMetadata);
} else if (providerMetadata instanceof EntityDescriptor) {
metadataRoot.getEntityDescriptors().add((EntityDescriptor) providerMetadata);
}
}
} catch (MetadataProviderException e) {
throw e;
} finally {
readLock.unlock();
}
return metadataRoot;
}
示例6: testEncoding
import org.opensaml.common.SAMLObjectBuilder; //导入方法依赖的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());
}
示例7: testEncoding
import org.opensaml.common.SAMLObjectBuilder; //导入方法依赖的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());
}
示例8: testRequestEncoding
import org.opensaml.common.SAMLObjectBuilder; //导入方法依赖的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());
}
示例9: testRequestEncoding
import org.opensaml.common.SAMLObjectBuilder; //导入方法依赖的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());
}
示例10: buildXMLObject
import org.opensaml.common.SAMLObjectBuilder; //导入方法依赖的package包/类
/** {@inheritDoc} */
public KeyInfoConfirmationDataType buildXMLObject() {
SAMLObjectBuilder builder =
(SAMLObjectBuilder) Configuration.getBuilderFactory().getBuilder(KeyInfoConfirmationDataType.TYPE_NAME);
if(builder == null){
fail("Unable to retrieve builder for object QName " + KeyInfoConfirmationDataType.TYPE_NAME);
}
return (KeyInfoConfirmationDataType) builder.buildObject();
}
示例11: buildStringAttribute
import org.opensaml.common.SAMLObjectBuilder; //导入方法依赖的package包/类
/**
* Builds a SAML Attribute of type String
*
* @param name
* @param value
* @param builderFactory
* @return
* @throws ConfigurationException
*/
private Attribute buildStringAttribute(String name, String value, XMLObjectBuilderFactory builderFactory) throws ConfigurationException {
SAMLObjectBuilder attrBuilder = (SAMLObjectBuilder) getSAMLBuilder().getBuilder(Attribute.DEFAULT_ELEMENT_NAME);
Attribute attrFirstName = (Attribute) attrBuilder.buildObject();
attrFirstName.setName(name);
// Set custom Attributes
XMLObjectBuilder stringBuilder = getSAMLBuilder().getBuilder(XSString.TYPE_NAME);
XSString attrValueFirstName = (XSString) stringBuilder.buildObject(AttributeValue.DEFAULT_ELEMENT_NAME, XSString.TYPE_NAME);
attrValueFirstName.setValue(value);
attrFirstName.getAttributeValues().add(attrValueFirstName);
return attrFirstName;
}
示例12: buildInTransport
import org.opensaml.common.SAMLObjectBuilder; //导入方法依赖的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
示例13: testResponseEncoding
import org.opensaml.common.SAMLObjectBuilder; //导入方法依赖的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());
}
示例14: testResponseEncoding
import org.opensaml.common.SAMLObjectBuilder; //导入方法依赖的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());
}
示例15: testResponseEncodingWithSimpleSign
import org.opensaml.common.SAMLObjectBuilder; //导入方法依赖的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.
}