private void buildStatus(Response response, String statusCodeStr) { @SuppressWarnings("unchecked") SAMLObjectBuilder<StatusCode> statusCodeBuilder = (SAMLObjectBuilder<StatusCode>) builderFactory .getBuilder(StatusCode.DEFAULT_ELEMENT_NAME); StatusCode statusCode = statusCodeBuilder.buildObject(); statusCode.setValue(statusCodeStr); @SuppressWarnings("unchecked") SAMLObjectBuilder<Status> statusBuilder = (SAMLObjectBuilder<Status>) builderFactory .getBuilder(Status.DEFAULT_ELEMENT_NAME); Status status = statusBuilder.buildObject(); status.setStatusCode(statusCode); response.setStatus(status); }
/** * Removes the builder, marshaller, and unmarshaller registered to the given key. * * @param key the key of the builder, marshaller, and unmarshaller to be removed */ public static void deregisterObjectProvider(QName key) { Logger log = getLogger(); log.debug("Unregistering builder, marshaller, and unmarshaller for {}", key); configuredObjectProviders.remove(key); builderFactory.deregisterBuilder(key); marshallerFactory.deregisterMarshaller(key); unmarshallerFactory.deregisterUnmarshaller(key); }
/** * Adds an object provider to this configuration. * * @param providerName the name of the object provider, corresponding to the element name or type name that the * builder, marshaller, and unmarshaller operate on * @param builder the builder for that given provider * @param marshaller the marshaller for the provider * @param unmarshaller the unmarshaller for the provider */ public static void registerObjectProvider(QName providerName, XMLObjectBuilder builder, Marshaller marshaller, Unmarshaller unmarshaller) { Logger log = getLogger(); log.debug("Registering new builder, marshaller, and unmarshaller for {}", providerName); builderFactory.registerBuilder(providerName, builder); marshallerFactory.registerMarshaller(providerName, marshaller); unmarshallerFactory.registerUnmarshaller(providerName, unmarshaller); }
/** * Removes the builder, marshaller, and unmarshaller registered to the given key. * * @param key the key of the builder, marshaller, and unmarshaller to be removed */ public static void deregisterObjectProvider(QName key) { Logger log = getLogger(); log.debug("Unregistering builder, marshaller, and unmarshaller for {}", key); configuredObjectProviders.remove(key); builderFactory.deregisterBuilder(key); marshallerFactory.deregisterMarshaller(key); unmarshallerFactory.deregisterUnmarshaller(key); }
/** * Adds an object provider to this configuration. * * @param providerName the name of the object provider, corresponding to the element name or type name that the * builder, marshaller, and unmarshaller operate on * @param builder the builder for that given provider * @param marshaller the marshaller for the provider * @param unmarshaller the unmarshaller for the provider */ public static void registerObjectProvider(QName providerName, XMLObjectBuilder builder, Marshaller marshaller, Unmarshaller unmarshaller) { Logger log = getLogger(); log.debug("Registering new builder, marshaller, and unmarshaller for {}", providerName); builderFactory.registerBuilder(providerName, builder); marshallerFactory.registerMarshaller(providerName, marshaller); unmarshallerFactory.registerUnmarshaller(providerName, unmarshaller); }
public Attribute buildStringAttribute(String name, List<String> values) { @SuppressWarnings("unchecked") SAMLObjectBuilder<Attribute> attributeBuilder = (SAMLObjectBuilder<Attribute>) builderFactory .getBuilder(Attribute.DEFAULT_ELEMENT_NAME); Attribute attribute = (Attribute) attributeBuilder.buildObject(); attribute.setName(name); @SuppressWarnings("unchecked") XMLObjectBuilder<XSString> xsStringBuilder = (XMLObjectBuilder<XSString>) builderFactory .getBuilder(XSString.TYPE_NAME); for (String value : values) { // Set custom Attributes XSString attributeValue = xsStringBuilder.buildObject(AttributeValue.DEFAULT_ELEMENT_NAME, XSString.TYPE_NAME); attributeValue.setValue(value); attribute.getAttributeValues().add(attributeValue); } return attribute; }
private void buildAssertionConditions(Assertion assertion, int assertionTtlSeconds, String audienceURI) { @SuppressWarnings("unchecked") SAMLObjectBuilder<Conditions> conditionsBuilder = (SAMLObjectBuilder<Conditions>) builderFactory .getBuilder(Conditions.DEFAULT_ELEMENT_NAME); Conditions conditions = conditionsBuilder.buildObject(); conditions.setNotBefore(new DateTime()); conditions.setNotOnOrAfter(new DateTime().plusSeconds(assertionTtlSeconds)); @SuppressWarnings("unchecked") SAMLObjectBuilder<AudienceRestriction> audienceRestrictionBuilder = (SAMLObjectBuilder<AudienceRestriction>) builderFactory .getBuilder(AudienceRestriction.DEFAULT_ELEMENT_NAME); AudienceRestriction audienceRestriction = audienceRestrictionBuilder.buildObject(); @SuppressWarnings("unchecked") SAMLObjectBuilder<Audience> audienceBuilder = (SAMLObjectBuilder<Audience>) builderFactory .getBuilder(Audience.DEFAULT_ELEMENT_NAME); Audience audience = audienceBuilder.buildObject(); audience.setAudienceURI(audienceURI); audienceRestriction.getAudiences().add(audience); conditions.getAudienceRestrictions().add(audienceRestriction); assertion.setConditions(conditions); }
private void buildAssertionAuthnStatement(Assertion assertion) { @SuppressWarnings("unchecked") SAMLObjectBuilder<AuthnStatement> authnStatementBuilder = (SAMLObjectBuilder<AuthnStatement>) builderFactory .getBuilder(AuthnStatement.DEFAULT_ELEMENT_NAME); AuthnStatement authnStatement = authnStatementBuilder.buildObject(); authnStatement.setAuthnInstant(new DateTime()); authnStatement.setSessionIndex(generateID()); @SuppressWarnings("unchecked") SAMLObjectBuilder<AuthnContext> authnContextBuilder = (SAMLObjectBuilder<AuthnContext>) builderFactory .getBuilder(AuthnContext.DEFAULT_ELEMENT_NAME); AuthnContext authnContext = authnContextBuilder.buildObject(); @SuppressWarnings("unchecked") SAMLObjectBuilder<AuthnContextClassRef> authnContextClassRefBuilder = (SAMLObjectBuilder<AuthnContextClassRef>) builderFactory .getBuilder(AuthnContextClassRef.DEFAULT_ELEMENT_NAME); AuthnContextClassRef authnContextClassRef = authnContextClassRefBuilder.buildObject(); authnContextClassRef.setAuthnContextClassRef(AuthnContext.PASSWORD_AUTHN_CTX); authnContext.setAuthnContextClassRef(authnContextClassRef); authnStatement.setAuthnContext(authnContext); assertion.getAuthnStatements().add(authnStatement); }
private Response createResponse(SAMLMessageContext context, AssertionConsumerService assertionConsumerService, Assertion assertion, AuthnRequest authnRequest) { @SuppressWarnings("unchecked") SAMLObjectBuilder<Response> responseBuilder = (SAMLObjectBuilder<Response>) builderFactory .getBuilder(Response.DEFAULT_ELEMENT_NAME); Response response = responseBuilder.buildObject(); buildCommonAttributes(context.getLocalEntityId(), response, assertionConsumerService, authnRequest); response.getAssertions().add(assertion); buildStatusSuccess(response); return response; }
protected SingleSignOnService getSingleSignOnService(String entityBaseURL, String entityAlias, String filterURL, String binding) { @SuppressWarnings("unchecked") SAMLObjectBuilder<SingleSignOnService> builder = (SAMLObjectBuilder<SingleSignOnService>) builderFactory .getBuilder(SingleSignOnService.DEFAULT_ELEMENT_NAME); SingleSignOnService sso = builder.buildObject(); sso.setLocation(getServerURL(entityBaseURL, entityAlias, filterURL)); sso.setBinding(binding); return sso; }
protected KeyDescriptor getKeyDescriptor(UsageType type, KeyInfo key) { @SuppressWarnings("unchecked") SAMLObjectBuilder<KeyDescriptor> builder = (SAMLObjectBuilder<KeyDescriptor>) Configuration.getBuilderFactory() .getBuilder(KeyDescriptor.DEFAULT_ELEMENT_NAME); KeyDescriptor descriptor = builder.buildObject(); descriptor.setUse(type); descriptor.setKeyInfo(key); return descriptor; }
protected DiscoveryResponse getDiscoveryService(String entityBaseURL, String entityAlias) { @SuppressWarnings("unchecked") SAMLObjectBuilder<DiscoveryResponse> builder = (SAMLObjectBuilder<DiscoveryResponse>) builderFactory .getBuilder(DiscoveryResponse.DEFAULT_ELEMENT_NAME); DiscoveryResponse discovery = builder.buildObject(DiscoveryResponse.DEFAULT_ELEMENT_NAME); discovery.setBinding(DiscoveryResponse.IDP_DISCO_NS); discovery.setLocation(getDiscoveryResponseURL(entityBaseURL, entityAlias)); return discovery; }
@SuppressWarnings("unchecked") SAMLObjectBuilder<NameIDFormat> builder = (SAMLObjectBuilder<NameIDFormat>) builderFactory .getBuilder(NameIDFormat.DEFAULT_ELEMENT_NAME);
protected SingleLogoutService getSingleLogoutService(String entityBaseURL, String entityAlias, String binding) { @SuppressWarnings("unchecked") SAMLObjectBuilder<SingleLogoutService> builder = (SAMLObjectBuilder<SingleLogoutService>) builderFactory .getBuilder(SingleLogoutService.DEFAULT_ELEMENT_NAME); SingleLogoutService logoutService = builder.buildObject(); logoutService.setLocation(getServerURL(entityBaseURL, entityAlias, getSAMLLogoutFilterPath())); logoutService.setBinding(binding); return logoutService; }
public Issuer getIssuer(String localEntityId) { @SuppressWarnings("unchecked") SAMLObjectBuilder<Issuer> issuerBuilder = (SAMLObjectBuilder<Issuer>) builderFactory .getBuilder(Issuer.DEFAULT_ELEMENT_NAME); Issuer issuer = issuerBuilder.buildObject(); issuer.setValue(localEntityId); return issuer; }
protected void buildAttributeStatement(Assertion assertion, Authentication authentication, String providerEntityId) { @SuppressWarnings("unchecked") SAMLObjectBuilder<AttributeStatement> attributeStatementBuilder = (SAMLObjectBuilder<AttributeStatement>) builderFactory .getBuilder(AttributeStatement.DEFAULT_ELEMENT_NAME); AttributeStatement attributeStatement = attributeStatementBuilder.buildObject();
public AuthnRequest buildIdpInitiatedAuthnRequest(String nameIDFormat, String spEntityID, String assertionUrl) { @SuppressWarnings("unchecked") SAMLObjectBuilder<AuthnRequest> builder = (SAMLObjectBuilder<AuthnRequest>) builderFactory .getBuilder(AuthnRequest.DEFAULT_ELEMENT_NAME); AuthnRequest request = builder.buildObject(); request.setVersion(SAMLVersion.VERSION_20); request.setID(generateID()); request.setIssuer(getIssuer(spEntityID)); request.setVersion(SAMLVersion.VERSION_20); request.setIssueInstant(new DateTime()); request.setID(null); request.setAssertionConsumerServiceURL(assertionUrl); if (null != nameIDFormat) { NameID nameID = ((SAMLObjectBuilder<NameID>) builderFactory.getBuilder(NameID.DEFAULT_ELEMENT_NAME)).buildObject(); nameID.setFormat(nameIDFormat); Subject subject = ((SAMLObjectBuilder<Subject>) builderFactory.getBuilder(Subject.DEFAULT_ELEMENT_NAME)).buildObject(); subject.setNameID(nameID); request.setSubject(subject); } return request; }
private void signAssertion(Assertion assertion, Credential credential) throws SecurityException, MarshallingException, SignatureException { SignatureBuilder signatureBuilder = (SignatureBuilder) builderFactory .getBuilder(Signature.DEFAULT_ELEMENT_NAME); Signature signature = signatureBuilder.buildObject(); signature.setSigningCredential(credential); SecurityHelper.prepareSignatureParams(signature, credential, null, null); assertion.setSignature(signature); Marshaller marshaller = Configuration.getMarshallerFactory().getMarshaller(assertion); marshaller.marshall(assertion); Signer.signObject(signature); }
private Assertion buildAssertion(Authentication authentication, AuthnRequest authnRequest, IdpWebSSOProfileOptions options, String audienceURI, String issuerEntityId) throws SAMLException{ @SuppressWarnings("unchecked") SAMLObjectBuilder<Assertion> assertionBuilder = (SAMLObjectBuilder<Assertion>) builderFactory .getBuilder(Assertion.DEFAULT_ELEMENT_NAME); Assertion assertion = assertionBuilder.buildObject(); assertion.setID(generateID()); assertion.setIssueInstant(new DateTime()); assertion.setVersion(SAMLVersion.VERSION_20); assertion.setIssuer(getIssuer(issuerEntityId)); buildAssertionAuthnStatement(assertion); buildAssertionConditions(assertion, options.getAssertionTimeToLiveSeconds(), audienceURI); buildAssertionSubject(assertion, authnRequest, options.getAssertionTimeToLiveSeconds(), (UaaPrincipal) authentication.getPrincipal()); buildAttributeStatement(assertion, authentication, audienceURI); return assertion; }
@SuppressWarnings("unchecked") SAMLObjectBuilder<IDPSSODescriptor> builder = (SAMLObjectBuilder<IDPSSODescriptor>) builderFactory .getBuilder(IDPSSODescriptor.DEFAULT_ELEMENT_NAME); IDPSSODescriptor idpDescriptor = builder.buildObject(); idpDescriptor.setWantAuthnRequestsSigned(wantAuthnRequestSigned);