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 LogoutResponse resolveLogoutResponse(org.opensaml.saml.saml2.core.LogoutResponse response, List<SimpleKey> verificationKeys, List<SimpleKey> localKeys) { LogoutResponse result = new LogoutResponse() .setId(response.getID()) .setInResponseTo(response.getInResponseTo()) .setConsent(response.getConsent()) .setVersion(response.getVersion().toString()) .setIssueInstant(response.getIssueInstant()) .setIssuer(getIssuer(response.getIssuer())) .setDestination(response.getDestination()) .setStatus(getStatus(response.getStatus())); return result; }
/** * Validates the SAML logout response. * * @param logoutResponse the logout response * @param context the context * @param engine the signature engine */ protected void validateLogoutResponse(final LogoutResponse logoutResponse, final SAML2MessageContext context, final SignatureTrustEngine engine) { validateSuccess(logoutResponse.getStatus()); validateSignatureIfItExists(logoutResponse.getSignature(), context, engine); validateIssueInstant(logoutResponse.getIssueInstant()); validateIssuerIfItExists(logoutResponse.getIssuer(), context); verifyEndpoint(context.getSPSSODescriptor().getSingleLogoutServices().get(0), logoutResponse.getDestination()); }
if (relayState != null && !relayState.getJwtClaims().getSubject().equals(logoutResponse.getInResponseTo())) { throw new IllegalArgumentException("Unmatching request ID: " + logoutResponse.getInResponseTo()); 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());
public static LogoutResponse createLogoutResponse( Issuer issuer, Status status, String inResponseTo, String id) { LogoutResponse logoutResponse = logoutResponseBuilder.buildObject(); logoutResponse.setID(id); logoutResponse.setIssuer(issuer); logoutResponse.setStatus(status); if (StringUtils.isNotBlank(inResponseTo)) { logoutResponse.setInResponseTo(inResponseTo); } logoutResponse.setIssueInstant(DateTime.now()); logoutResponse.setVersion(SAMLVersion.VERSION_20); return logoutResponse; }
public static LogoutResponse createSAMLLogoutResponse( String inResponseTo, String issuer, Status status, String destination ) { if (logoutResponseBuilder == null) { logoutResponseBuilder = (SAMLObjectBuilder<LogoutResponse>) builderFactory.getBuilder(LogoutResponse.DEFAULT_ELEMENT_NAME); } LogoutResponse response = logoutResponseBuilder.buildObject(); response.setID(UUID.randomUUID().toString()); response.setIssueInstant(new DateTime()); response.setInResponseTo(inResponseTo); response.setIssuer(createIssuer(issuer)); response.setStatus(status); response.setVersion(SAMLVersion.VERSION_20); response.setDestination(destination); return response; }
@SuppressWarnings("unchecked") protected final LogoutResponse buildLogoutResponse(final SAML2MessageContext context, final SingleLogoutService ssoService) { final SAMLObjectBuilder<LogoutResponse> builder = (SAMLObjectBuilder<LogoutResponse>) this.builderFactory .getBuilder(LogoutResponse.DEFAULT_ELEMENT_NAME); final LogoutResponse response = builder.buildObject(); final SAMLSelfEntityContext selfContext = context.getSAMLSelfEntityContext(); response.setID(SAML2Utils.generateID()); response.setIssuer(getIssuer(selfContext.getEntityId())); response.setIssueInstant(DateTime.now(DateTimeZone.UTC).plusSeconds(this.issueInstantSkewSeconds)); response.setVersion(SAMLVersion.VERSION_20); response.setDestination(ssoService.getLocation()); response.setStatus(getSuccess()); final SAMLObject originalMessage = context.getMessage(); if (originalMessage != null && originalMessage instanceof RequestAbstractTypeImpl) { response.setInResponseTo(((RequestAbstractTypeImpl) originalMessage).getID()); } return response; }
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 org.opensaml.saml.saml2.core.LogoutResponse internalToXml(LogoutResponse response) { org.opensaml.saml.saml2.core.LogoutResponse result = buildSAMLObject(org.opensaml.saml.saml2.core.LogoutResponse.class); result.setInResponseTo(response.getInResponseTo()); result.setID(response.getId()); result.setIssueInstant(response.getIssueInstant()); result.setDestination(response.getDestination()); org.opensaml.saml.saml2.core.Issuer issuer = buildSAMLObject(org.opensaml.saml.saml2.core.Issuer.class); issuer.setValue(response.getIssuer().getValue()); issuer.setNameQualifier(response.getIssuer().getNameQualifier()); issuer.setSPNameQualifier(response.getIssuer().getSpNameQualifier()); result.setIssuer(issuer); org.opensaml.saml.saml2.core.Status status = buildSAMLObject(org.opensaml.saml.saml2.core.Status.class); org.opensaml.saml.saml2.core.StatusCode code = buildSAMLObject(org.opensaml.saml.saml2.core.StatusCode.class); code.setValue(response.getStatus().getCode().toString()); status.setStatusCode(code); if (hasText(response.getStatus().getMessage())) { StatusMessage message = buildSAMLObject(StatusMessage.class); message.setMessage(response.getStatus().getMessage()); status.setStatusMessage(message); } result.setStatus(status); if (response.getSigningKey() != null) { this.signObject(result, response.getSigningKey(), response.getAlgorithm(), response.getDigest()); } return result; }