singleLogoutEndpoints.forEach(endpoint -> { final SingleLogoutService slo = build(SingleLogoutService.DEFAULT_ELEMENT_NAME); slo.setBinding(endpoint.bindingProtocol().urn()); slo.setLocation(endpoint.toUriString(portConfig.scheme().uriText(), defaultHostname, portConfig.port()));
assertThat(slo.get(0).getLocation()) .isEqualTo("http://" + spHostname + ':' + rule.httpPort() + "/saml/slo/post"); assertThat(slo.get(0).getBinding()).isEqualTo(SAMLConstants.SAML2_POST_BINDING_URI); assertThat(slo.get(1).getLocation()) .isEqualTo("http://" + spHostname + ':' + rule.httpPort() + "/saml/slo/redirect"); assertThat(slo.get(1).getBinding()).isEqualTo(SAMLConstants.SAML2_REDIRECT_BINDING_URI);
private static SingleLogoutUrl finalizeSingleLogoutUrl(final SingleLogoutService sloService, final SamlRegisteredService service) { val location = StringUtils.isBlank(sloService.getResponseLocation()) ? sloService.getLocation() : sloService.getResponseLocation(); val url = new SingleLogoutUrl(location, service.getLogoutType()); url.getProperties().put(PROPERTY_NAME_SINGLE_LOGOUT_BINDING, sloService.getBinding()); return url; } }
singleLogoutService.setBinding(bindingType.getUri()); singleLogoutService.setLocation(sloUrl); singleLogoutService.setResponseLocation(sloUrl); spSSODescriptor.getSingleLogoutServices().add(singleLogoutService);
/** * Gets single logout service for the requested binding. * * @param binding the binding * @return the single logout service or null */ public SingleLogoutService getSingleLogoutService(final String binding) { return getSingleLogoutServices().stream().filter(acs -> acs.getBinding().equals(binding)).findFirst().orElse(null); }
@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; }
id, slo.getBinding(), slo.getLocation(), slo.getResponseLocation()); this.sloBindings.put(slo.getBinding(), slo); });
public final SingleLogoutService getIDPSingleLogoutService(final String binding) { final List<SingleLogoutService> services = getIDPSSODescriptor().getSingleLogoutServices(); for (final SingleLogoutService service : services) { if (service.getBinding().equals(binding)) { return service; } } throw new SAMLException("Identity provider has no single logout service available for the selected profile" + binding); }
request.setIssueInstant(DateTime.now(DateTimeZone.UTC).plusSeconds(this.issueInstantSkewSeconds)); request.setVersion(SAMLVersion.VERSION_20); request.setDestination(ssoService.getLocation());
private static void addSingleLogoutBinding( String binding, String singleLogOutLocation, List<SingleLogoutService> singleLogoutServices) { SingleLogoutService sls = singleLogOutServiceBuilder.buildObject(); sls.setBinding(binding); sls.setLocation(singleLogOutLocation); singleLogoutServices.add(sls); }
protected SingleLogoutService getSingleLogoutService(final String binding) { final SAMLObjectBuilder<SingleLogoutService> builder = (SAMLObjectBuilder<SingleLogoutService>) this.builderFactory .getBuilder(SingleLogoutService.DEFAULT_ELEMENT_NAME); final SingleLogoutService logoutService = builder.buildObject(); logoutService.setLocation(this.singleLogoutServiceUrl); logoutService.setBinding(binding); return logoutService; }
public SingleLogoutService getSingleLogoutService(Endpoint endpoint) { SAMLObjectBuilder<SingleLogoutService> builder = (SAMLObjectBuilder<SingleLogoutService>) getBuilderFactory() .getBuilder(SingleLogoutService.DEFAULT_ELEMENT_NAME); SingleLogoutService service = builder.buildObject(); service.setBinding(endpoint.getBinding().toString()); service.setLocation(endpoint.getLocation()); return service; }
singleLogoutEndpoints.forEach(endpoint -> { final SingleLogoutService slo = build(SingleLogoutService.DEFAULT_ELEMENT_NAME); slo.setBinding(endpoint.bindingProtocol().urn()); slo.setLocation(endpoint.toUriString(portConfig.scheme().uriText(), defaultHostname, portConfig.port()));