private LogoutResponse createLogoutResponse(LogoutRequest logoutRequest, String statusCode) { final StatusCode success = build(StatusCode.DEFAULT_ELEMENT_NAME); success.setValue(statusCode); final Status status = build(Status.DEFAULT_ELEMENT_NAME); status.setStatusCode(success); final Issuer me = build(Issuer.DEFAULT_ELEMENT_NAME); me.setValue(entityId); final LogoutResponse logoutResponse = build(LogoutResponse.DEFAULT_ELEMENT_NAME); logoutResponse.setIssuer(me); logoutResponse.setID(requestIdManager.newId()); logoutResponse.setIssueInstant(DateTime.now()); logoutResponse.setStatus(status); logoutResponse.setInResponseTo(logoutRequest.getID()); return logoutResponse; } }
private Assertion getValidatedAssertion(Response response, String endpointUri) { final Status status = response.getStatus(); final String statusCode = status.getStatusCode().getValue(); if (!StatusCode.SUCCESS.equals(statusCode)) { throw new SamlException("response status code: " + statusCode +
/** * Returns true if the identity provider cannot authenticate the principal passively, as requested, else false. * * @param response the SAML 2.0 Response to be evaluated * @return true if the identity provider cannot authenticate the principal passively, as requested, else false */ private boolean isNoPassive(Response response) { return (response.getStatus() != null) && (response.getStatus().getStatusCode() != null) && (response.getStatus().getStatusCode().getValue().equals(StatusCode.RESPONDER)) && (response.getStatus().getStatusCode().getStatusCode() != null) && (response.getStatus().getStatusCode().getStatusCode().getValue().equals(StatusCode.NO_PASSIVE)); }
/** * Build and attach {@link StatusCode} element. * * @param status the element to attach to * @param codes the status codes to use */ private void buildStatusCode(@Nonnull final Status status, @Nonnull @NonnullElements final List<String> codes) { final SAMLObjectBuilder<StatusCode> statusCodeBuilder = (SAMLObjectBuilder<StatusCode>) XMLObjectProviderRegistrySupport.getBuilderFactory().<StatusCode>getBuilderOrThrow( StatusCode.TYPE_NAME); // Build nested StatusCodes. StatusCode statusCode = statusCodeBuilder.buildObject(); status.setStatusCode(statusCode); if (codes.isEmpty()) { statusCode.setValue(StatusCode.RESPONDER); } else { statusCode.setValue(codes.get(0)); final Iterator<String> i = codes.iterator(); i.next(); while (i.hasNext()) { final StatusCode subcode = statusCodeBuilder.buildObject(); subcode.setValue(i.next()); statusCode.setStatusCode(subcode); statusCode = subcode; } } }
/** {@inheritDoc} */ protected void processChildElement(XMLObject parentSAMLObject, XMLObject childSAMLObject) throws UnmarshallingException { StatusCode statusCode = (StatusCode) parentSAMLObject; if (childSAMLObject instanceof StatusCode) { statusCode.setStatusCode((StatusCode) childSAMLObject); } else { super.processChildElement(parentSAMLObject, childSAMLObject); } } }
org.opensaml.saml.saml2.core.StatusCode sc = ((StatusResponseType) response).getStatus() != null ? ((StatusResponseType) response).getStatus().getStatusCode() : null; if (sc != null && sc.getStatusCode() != null) { final Collection<String> values = new ArrayList<>(1); do { sc = sc.getStatusCode(); if (sc.getValue() != null) { values.add(sc.getValue()); } while (sc.getStatusCode() != null); return values;
statusCode.setValue(StatusCode.SUCCESS); status.setStatusCode(statusCode); response.setStatus(status);
/** {@inheritDoc} */ protected void marshallAttributes(XMLObject samlObject, Element domElement) throws MarshallingException { StatusCode statusCode = (StatusCode) samlObject; if (statusCode.getValue() != null) { domElement.setAttributeNS(null, StatusCode.VALUE_ATTRIB_NAME, statusCode.getValue()); } }
/** {@inheritDoc} */ protected void processAttribute(XMLObject samlObject, Attr attribute) throws UnmarshallingException { StatusCode statusCode = (StatusCode) samlObject; if (attribute.getLocalName().equals(StatusCode.VALUE_ATTRIB_NAME)) { statusCode.setValue(attribute.getValue()); } else { super.processAttribute(samlObject, attribute); } }
/** * Validates that the response is a success. * * @param status the response status. */ protected final void validateSuccess(final Status status) { String statusValue = status.getStatusCode().getValue(); if (!StatusCode.SUCCESS.equals(statusValue)) { final StatusMessage statusMessage = status.getStatusMessage(); if (statusMessage != null) { statusValue += " / " + statusMessage.getMessage(); } throw new SAMLException("Response is not success ; actual " + statusValue); } }
public static StatusCode createStatusCode(String statusValue) { StatusCode statusCode = statusCodeBuilder.buildObject(); statusCode.setValue(statusValue); return statusCode; }
/** * Get whether the message is a SAML response containing an error status. * * @param message message to check * * @return true iff the message is a SAML response containing an error status */ private boolean isErrorResponse(@Nullable final Object message) { if (message != null) { if (message instanceof Response) { if (((Response) message).getStatus() != null) { final org.opensaml.saml.saml1.core.StatusCode s1 = ((Response) message).getStatus().getStatusCode(); return s1 != null && s1.getValue() != null && !org.opensaml.saml.saml1.core.StatusCode.SUCCESS.equals(s1.getValue()); } } else if (message instanceof StatusResponseType) { if (((StatusResponseType) message).getStatus() != null) { final org.opensaml.saml.saml2.core.StatusCode s2 = ((StatusResponseType) message).getStatus().getStatusCode(); return s2 != null && s2.getValue() != null && !org.opensaml.saml.saml2.core.StatusCode.SUCCESS.equals(s2.getValue()); } } } return false; }
protected Status getSuccess() { final SAMLObjectBuilder<Status> statusBuilder = (SAMLObjectBuilder<Status>) this.builderFactory .getBuilder(Status.DEFAULT_ELEMENT_NAME); final Status status = statusBuilder.buildObject(); StatusCode statusCode = new StatusCodeBuilder().buildObject(); statusCode.setValue(StatusCode.SUCCESS); status.setStatusCode(statusCode); return status; }
/** {@inheritDoc} */ @Override @Nullable public String apply(@Nullable final ProfileRequestContext input) { final SAMLObject response = responseLookupStrategy.apply(input); if (response != null) { if (response instanceof Response) { final org.opensaml.saml.saml1.core.StatusCode sc = ((Response) response).getStatus() != null ? ((Response) response).getStatus().getStatusCode() : null; if (sc != null && sc.getValue() != null) { return sc.getValue().getLocalPart(); } } else if (response instanceof StatusResponseType) { final org.opensaml.saml.saml2.core.StatusCode sc = ((StatusResponseType) response).getStatus() != null ? ((StatusResponseType) response).getStatus().getStatusCode() : null; if (sc != null) { return sc.getValue(); } } } return null; }
/** * Create a new SAML status object. * * @param codeValue the code value * @param statusMessage the status message * @return the status */ public Status newStatus(final String codeValue, final String statusMessage) { final Status status = newSamlObject(Status.class); final StatusCode code = newSamlObject(StatusCode.class); code.setValue(codeValue); status.setStatusCode(code); if (StringUtils.isNotBlank(statusMessage)) { final StatusMessage message = newSamlObject(StatusMessage.class); message.setMessage(statusMessage); status.setStatusMessage(message); } return status; }
if (StatusCode.SUCCESS.equals(logoutResponse.getStatus().getStatusCode().getValue())) { accessTokenDAO.delete(consumer.getJwtClaims().getTokenId()); } else { SyncopeClientException sce = SyncopeClientException.build(ClientExceptionType.Unknown); if (logoutResponse.getStatus().getStatusMessage() == null) { sce.getElements().add(logoutResponse.getStatus().getStatusCode().getValue()); } else { sce.getElements().add(logoutResponse.getStatus().getStatusMessage().getMessage());
private LogoutResponse createLogoutResponse(LogoutRequest logoutRequest, String statusCode) { final StatusCode success = build(StatusCode.DEFAULT_ELEMENT_NAME); success.setValue(statusCode); final Status status = build(Status.DEFAULT_ELEMENT_NAME); status.setStatusCode(success); final Issuer me = build(Issuer.DEFAULT_ELEMENT_NAME); me.setValue(entityId); final LogoutResponse logoutResponse = build(LogoutResponse.DEFAULT_ELEMENT_NAME); logoutResponse.setIssuer(me); logoutResponse.setID(requestIdManager.newId()); logoutResponse.setIssueInstant(DateTime.now()); logoutResponse.setStatus(status); logoutResponse.setInResponseTo(logoutRequest.getID()); return logoutResponse; } }
protected Status getStatus(org.opensaml.saml.saml2.core.Status status) { return new Status() .setCode(StatusCode.fromUrn(status.getStatusCode().getValue())) .setMessage(status.getStatusMessage() != null ? status.getStatusMessage().getMessage() : null); }
/** * This method is used to get status of message * * @param status response message Status * @param statMsg status message of the response * @return Status object of Status element */ public static Status buildStatus(String status, String statMsg) { Status stat = new StatusBuilder().buildObject(); // Set the status code StatusCode statCode = new StatusCodeBuilder().buildObject(); statCode.setValue(status); stat.setStatusCode(statCode); /* Set the status Message */ if (statMsg != null) { StatusMessage statMesssage = new StatusMessageBuilder().buildObject(); statMesssage.setMessage(statMsg); stat.setStatusMessage(statMesssage); } return stat; }
throw new WSSecurityException(WSSecurityException.ErrorCode.FAILURE, "invalidSAMLsecurity"); if (!SAML2_STATUSCODE_SUCCESS.equals(samlResponse.getStatus().getStatusCode().getValue())) { LOG.fine( "SAML Status code of " + samlResponse.getStatus().getStatusCode().getValue() + "does not equal " + SAML2_STATUSCODE_SUCCESS );