/** * Sign the SAML AuthnRequest message * * @param authnRequest * @param signatureAlgorithm * @param cred * @return * @throws org.wso2.carbon.identity.sso.agent.SSOAgentException */ public static AuthnRequest setSignature(AuthnRequest authnRequest, String signatureAlgorithm, X509Credential cred) throws SSOAgentException { doBootstrap(); try { Signature signature = setSignatureRaw(signatureAlgorithm,cred); authnRequest.setSignature(signature); List<Signature> signatureList = new ArrayList<Signature>(); signatureList.add(signature); // Marshall and Sign MarshallerFactory marshallerFactory = org.opensaml.xml.Configuration.getMarshallerFactory(); Marshaller marshaller = marshallerFactory.getMarshaller(authnRequest); marshaller.marshall(authnRequest); org.apache.xml.security.Init.init(); Signer.signObjects(signatureList); return authnRequest; } catch (Exception e) { throw new SSOAgentException("Error while signing the SAML Request message", e); } }
authnRequest.setSignature(signature);
authnRequest.setSignature(signature);
public AuthnRequest createAuthnRequest(final String requestId) { final AuthnRequest request = new AuthnRequestBuilder().buildObject(); request.setAssertionConsumerServiceURL(config.getSPConfig().getAcs()); request.setDestination(config.getIdPConfig().getLoginUrl()); request.setIssueInstant(new DateTime()); request.setID(requestId); final NameIDPolicy nameIDPolicy = new NameIDPolicyBuilder().buildObject(); nameIDPolicy.setFormat(NameIDType.UNSPECIFIED); request.setNameIDPolicy(nameIDPolicy); final Issuer issuer = new IssuerBuilder().buildObject(); issuer.setValue(config.getSPConfig().getEntityId()); request.setIssuer(issuer); request.setSignature(getSignature()); return request; }