Examples of XMLObjectBuilderFactory


Examples of org.opensaml.xml.XMLObjectBuilderFactory

    }

    public static Response createErrorResponse(XACMLPolicyQueryType inResponseTo, Exception e) {

        // get a builder factory
        XMLObjectBuilderFactory builderFactory = Configuration.getBuilderFactory();

        /* prepare the response */

        ResponseBuilder responseBuilder = (ResponseBuilder) builderFactory.getBuilder(Response.DEFAULT_ELEMENT_NAME);
        Response response = responseBuilder.buildObject();

        // set a few attributes for the response
        response.setID("_" + UUID.randomUUID().toString());
        response.setVersion(SAMLVersion.VERSION_20);
        response.setIssueInstant(new DateTime());
        response.setInResponseTo(inResponseTo.getID());

        /* add the Status element */

        // build a status object
        StatusBuilder statusBuilder = (StatusBuilder) builderFactory.getBuilder(Status.DEFAULT_ELEMENT_NAME);
        Status status = statusBuilder.buildObject();

        // build a status code object
        StatusCodeBuilder statusCodeBuilder = (StatusCodeBuilder) builderFactory.getBuilder(StatusCode.DEFAULT_ELEMENT_NAME);
        StatusCode statusCode = statusCodeBuilder.buildObject();

        // TODO now discriminates by exception but the code must be improved

        if (e instanceof VersionMismatchException) {

            statusCode.setValue(StatusCode.VERSION_MISMATCH_URI);

        } else if (e instanceof MissingIssuerException || e instanceof WrongFormatIssuerException) {

            // set the status code

            statusCode.setValue(StatusCode.REQUESTER_URI);

            // set status message with some details, when provided

            if (e.getMessage() != null) {

                StatusMessageBuilder statusMessageBuilder = (StatusMessageBuilder) builderFactory.getBuilder(StatusMessage.DEFAULT_ELEMENT_NAME);

                StatusMessage statusMessage = statusMessageBuilder.buildObject();

                statusMessage.setMessage(e.getMessage());

View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.