for (SingleLogoutService slos : idpDescriptor.getSingleLogoutServices()) { if (slos.getBinding().equals(SAMLConstants.SAML2_REDIRECT_BINDING_URI)) { idpMetadata.setSloUrl(slos.getLocation());
private void setSingleLogoutServices(SPSSODescriptor spssoDescriptor, SAMLSSOServiceProviderDO samlssoServiceProviderDO) { List<SingleLogoutService> singleLogoutServices = spssoDescriptor.getSingleLogoutServices(); if (singleLogoutServices != null && singleLogoutServices.size() > 0) { boolean foundSingleLogoutServicePostBinding = false; for (SingleLogoutService singleLogoutService : singleLogoutServices) { if (singleLogoutService.getBinding().equals(SAMLConstants.SAML2_POST_BINDING_URI)) { samlssoServiceProviderDO.setSloRequestURL(singleLogoutService.getLocation()); samlssoServiceProviderDO.setSloResponseURL(singleLogoutService.getResponseLocation());//changed foundSingleLogoutServicePostBinding = true; break; } } samlssoServiceProviderDO.setSloRequestURL(singleLogoutServices.get(0).getLocation()); samlssoServiceProviderDO.setSloResponseURL(singleLogoutServices.get(0).getResponseLocation());//chnaged samlssoServiceProviderDO.setDoSingleLogout(true); } else { samlssoServiceProviderDO.setDoSingleLogout(false); } }
private void setSingleLogoutServices(SPSSODescriptor spssoDescriptor, SAMLSSOServiceProviderDO samlssoServiceProviderDO){ List<SingleLogoutService> singleLogoutServices = spssoDescriptor.getSingleLogoutServices(); if (singleLogoutServices!=null && singleLogoutServices.size()>0) { boolean foundSingleLogoutServicePostBinding = false; for (SingleLogoutService singleLogoutService : singleLogoutServices) { if (singleLogoutService.getBinding().equals(SAMLConstants.SAML2_POST_BINDING_URI)) { samlssoServiceProviderDO.setSloRequestURL(singleLogoutService.getLocation()); samlssoServiceProviderDO.setSloResponseURL(singleLogoutService.getResponseLocation());//changed foundSingleLogoutServicePostBinding = true; break; } } if (!foundSingleLogoutServicePostBinding) { } samlssoServiceProviderDO.setSloRequestURL(singleLogoutServices.get(0).getLocation()); samlssoServiceProviderDO.setSloResponseURL(singleLogoutServices.get(0).getResponseLocation());//chnaged samlssoServiceProviderDO.setDoSingleLogout(true); } else { samlssoServiceProviderDO.setDoSingleLogout(false); } } private void setX509Certificate(EntityDescriptor entityDescriptor,SPSSODescriptor spssoDescriptor, SAMLSSOServiceProviderDO samlssoServiceProviderDO){
for (SingleLogoutService singleLogoutService : singleLogoutServices) { if (singleLogoutService != null) { if (singleLogoutService.getBinding() != null && singleLogoutService.getBinding().equals(SAMLConstants.SAML2_POST_BINDING_URI) && singleLogoutService.getLocation() != null) { property.setValue(singleLogoutService.getLocation()); foundSingleLogoutServicePostBinding = true; break; for (SingleLogoutService singleLogoutService : singleLogoutServices) { if (singleLogoutService != null) { if (singleLogoutService.getBinding() != null && singleLogoutService.getLocation() != null) { property.setValue(singleLogoutService.getLocation()); foundSingleLogoutServicePostBinding = true; break;
boolean found = false; for (SingleLogoutService service : services) { if (response.getDestination().equals(service.getLocation()) && context.getInboundSAMLBinding().equals(service.getBinding())) { found = true;
public void sendLogoutResponse(SAMLMessageContext context, String statusCode, String statusMessage) throws MetadataProviderException, SAMLException, MessageEncodingException { SAMLObjectBuilder<LogoutResponse> responseBuilder = (SAMLObjectBuilder<LogoutResponse>) builderFactory.getBuilder(LogoutResponse.DEFAULT_ELEMENT_NAME); LogoutResponse logoutResponse = responseBuilder.buildObject(); IDPSSODescriptor idpDescriptor = SAMLUtil.getIDPDescriptor(metadata, context.getPeerEntityId()); SPSSODescriptor spDescriptor = (SPSSODescriptor) context.getLocalEntityRoleMetadata(); String binding = SAMLUtil.getLogoutBinding(idpDescriptor, spDescriptor); SingleLogoutService logoutService = SAMLUtil.getLogoutServiceForBinding(idpDescriptor, binding); logoutResponse.setID(generateID()); logoutResponse.setIssuer(getIssuer(context.getLocalEntityId())); logoutResponse.setVersion(SAMLVersion.VERSION_20); logoutResponse.setIssueInstant(new DateTime()); logoutResponse.setInResponseTo(context.getInboundSAMLMessageId()); logoutResponse.setDestination(logoutService.getLocation()); Status status = getStatus(statusCode, statusMessage); logoutResponse.setStatus(status); context.setCommunicationProfileId(getProfileIdentifier()); context.setOutboundMessage(logoutResponse); context.setOutboundSAMLMessage(logoutResponse); context.setPeerEntityEndpoint(logoutService); context.setPeerEntityRoleMetadata(idpDescriptor); boolean signMessage = context.getPeerExtendedMetadata().isRequireLogoutResponseSigned(); sendMessage(context, signMessage); }