public static Response wrapAssertionIntoResponse(Assertion assertion, String assertionIssuer) { Response response = new ResponseBuilder().buildObject(); Issuer issuer = new IssuerBuilder().buildObject(); issuer.setValue(assertionIssuer); response.setIssuer(issuer); response.setID("id-" + System.currentTimeMillis()); Status stat = new StatusBuilder().buildObject(); // Set the status code StatusCode statCode = new StatusCodeBuilder().buildObject(); statCode.setValue("urn:oasis:names:tc:SAML:2.0:status:Success"); stat.setStatusCode(statCode); // Set the status Message StatusMessage statMesssage = new StatusMessageBuilder().buildObject(); statMesssage.setMessage(null); stat.setStatusMessage(statMesssage); response.setStatus(stat); response.setVersion(SAMLVersion.VERSION_20); response.setIssueInstant(new DateTime()); response.getAssertions().add(assertion); //XMLHelper.adoptElement(assertion.getDOM(), assertion.getDOM().getOwnerDocument()); return response; }
String getAssertionXml(Assertion assertion) { try { AssertionMarshaller marshaller = new AssertionMarshaller(); Element plaintextElement = marshaller.marshall(assertion); String serializedElement = XMLHelper.nodeToString(plaintextElement); return serializedElement; } catch(Exception e) { } return null; }
private RequesterID createRequesterID(String id) { RequesterID requesterID = requesterIDBuilder.buildObject(); requesterID.setRequesterID(id); return requesterID; }
public static AuthnRequest buildAuthnRequestObject(final String authnId, final String spId, final String idpUrl, final String consumerUrl) { IssuerBuilder issuerBuilder = new IssuerBuilder(); Issuer issuer = issuerBuilder.buildObject(); issuer.setValue(spId); AuthnContextClassRefBuilder authnContextClassRefBuilder = new AuthnContextClassRefBuilder(); AuthnContextClassRef authnContextClassRef = authnContextClassRefBuilder.buildObject( SAMLConstants.SAML20_NS, "AuthnContextClassRef", "saml"); RequestedAuthnContextBuilder requestedAuthnContextBuilder = new RequestedAuthnContextBuilder(); RequestedAuthnContext requestedAuthnContext = requestedAuthnContextBuilder.buildObject(); requestedAuthnContext.setComparison(AuthnContextComparisonTypeEnumeration.EXACT); requestedAuthnContext.getAuthnContextClassRefs().add(authnContextClassRef); AuthnRequestBuilder authRequestBuilder = new AuthnRequestBuilder(); AuthnRequest authnRequest = authRequestBuilder.buildObject(); authnRequest.setID(authnId); authnRequest.setDestination(idpUrl);
public static LogoutRequest buildLogoutRequest(String logoutUrl, String spId, String nameIdString) { Issuer issuer = new IssuerBuilder().buildObject(); issuer.setValue(spId); NameID nameID = new NameIDBuilder().buildObject(); nameID.setValue(nameIdString); LogoutRequest logoutRequest = new LogoutRequestBuilder().buildObject(); logoutRequest.setID(generateSecureRandomId()); logoutRequest.setDestination(logoutUrl); logoutRequest.setVersion(SAMLVersion.VERSION_20); logoutRequest.setIssueInstant(new DateTime()); logoutRequest.setIssuer(issuer); logoutRequest.setNameID(nameID); return logoutRequest; }
DefaultBootstrap.bootstrap(); HTTPRedirectDeflateDecoder decode = new HTTPRedirectDeflateDecoder(new BasicParserPool()); BasicSAMLMessageContext<LogoutRequest, ?, ?> messageContext = new BasicSAMLMessageContext<LogoutRequest, SAMLObject, SAMLObject>(); messageContext.setInboundMessageTransport(new HttpServletRequestAdapter(request)); decode.decode(messageContext); XMLObjectBuilderFactory builderFactory = org.opensaml.Configuration.getBuilderFactory(); LogoutRequestBuilder logoutRequestBuilder = (LogoutRequestBuilder) builderFactory.getBuilder(LogoutRequest.DEFAULT_ELEMENT_NAME); LogoutRequest logoutRequest = logoutRequestBuilder.buildObject(); logoutRequest = (LogoutRequest) messageContext.getInboundMessage();
/** {@inheritDoc} */ public AuthnStatement buildObject() { return buildObject(SAMLConstants.SAML20_NS, AuthnStatement.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20_PREFIX); }
/** {@inheritDoc} */ public AuthnContext buildObject() { return buildObject(SAMLConstants.SAML20_NS, AuthnContext.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20_PREFIX); }
Scoping scoping = scopingBuilder.buildObject(); scoping.getRequesterIDs().add(createRequesterID(spEntityIdBy)); authnRequest.setScoping(scoping);
/** {@inheritDoc} */ public AuthnQuery buildObject() { return buildObject(SAMLConstants.SAML20P_NS, AuthnQuery.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20P_PREFIX); }
/** {@inheritDoc} */ public AuthzDecisionStatement buildObject() { return buildObject(SAMLConstants.SAML20_NS, AuthzDecisionStatement.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20_PREFIX); }
/** {@inheritDoc} */ public NameIDMappingResponse buildObject() { return buildObject(SAMLConstants.SAML20P_NS, NameIDMappingResponse.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20P_PREFIX); }
/** {@inheritDoc} */ public NameIDMappingResponse buildObject(String namespaceURI, String localName, String namespacePrefix) { return new NameIDMappingResponseImpl(namespaceURI, localName, namespacePrefix); } }
/** {@inheritDoc} */ public NameIDMappingRequest buildObject(String namespaceURI, String localName, String namespacePrefix) { return new NameIDMappingRequestImpl(namespaceURI, localName, namespacePrefix); } }
/** {@inheritDoc} */ public AuthnContextClassRef buildObject(String namespaceURI, String localName, String namespacePrefix) { return new AuthnContextClassRefImpl(namespaceURI, localName, namespacePrefix); } }
/** {@inheritDoc} */ public IDPList buildObject(String namespaceURI, String localName, String namespacePrefix) { return new IDPListImpl(namespaceURI, localName, namespacePrefix); } }
/** {@inheritDoc} */ public EncryptedAssertion buildObject() { return buildObject(SAMLConstants.SAML20_NS, EncryptedAssertion.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20_PREFIX); }
/** {@inheritDoc} */ public EncryptedID buildObject() { return buildObject(SAMLConstants.SAML20_NS, EncryptedID.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20_PREFIX); }
/** {@inheritDoc} */ public LogoutRequest buildObject() { return buildObject(SAMLConstants.SAML20P_NS, LogoutRequest.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20P_PREFIX); }
public String mockAssertionEncoded(Assertion assertion) throws Exception { AssertionMarshaller marshaller = new AssertionMarshaller(); Element plaintextElement = marshaller.marshall(assertion); String serializedElement = XMLHelper.nodeToString(plaintextElement); return Base64.encodeBase64URLSafeString(serializedElement.getBytes("utf-8")); }