"<head>"; if (!Util.isNullOrEmpty(postLogoutUrl)) { if (!Util.isNullOrEmpty(state)) { if (postLogoutUrl.contains("?")) { postLogoutUrl += "&state=" + state;
/** * returns User by Dn * * @return User */ @Nullable public User getUserByDn(String dn, String... returnAttributes) { if (Util.isNullOrEmpty(dn)) { return null; } return ldapEntryManager.find(User.class, dn, returnAttributes); }
public void validateLogoutUri(String logoutUri, List<String> redirectUris, ErrorResponseFactory errorResponseFactory) { if (Util.isNullOrEmpty(logoutUri)) { // logout uri is optional so null or empty string is valid return; } // preconditions if (redirectUris == null || redirectUris.isEmpty()) { log.error("Preconditions of logout uri validation are failed."); throwInvalidLogoutUri(errorResponseFactory); return; } try { Set<String> redirectUriHosts = collectUriHosts(redirectUris); URI uri = new URI(logoutUri); if (!redirectUriHosts.contains(uri.getHost())) { log.error("logout uri host is not within redirect_uris, logout_uri: {}, redirect_uris: {}", logoutUri, redirectUris); throwInvalidLogoutUri(errorResponseFactory); return; } if (!HTTPS.equalsIgnoreCase(uri.getScheme())) { log.error("logout uri schema is not https, logout_uri: {}", logoutUri); throwInvalidLogoutUri(errorResponseFactory); } } catch (Exception e) { log.error(e.getMessage(), e); throwInvalidLogoutUri(errorResponseFactory); } }
public String validatePostLogoutRedirectUri(String clientId, String postLogoutRedirectUri) { boolean isBlank = Util.isNullOrEmpty(postLogoutRedirectUri); Client client = clientService.getClient(clientId); if (client != null) { String[] postLogoutRedirectUris = client.getPostLogoutRedirectUris(); if (postLogoutRedirectUris != null && StringUtils.isNotBlank(postLogoutRedirectUri)) { log.debug("Validating post logout redirect URI: clientId = {}, postLogoutRedirectUri = {}", clientId, postLogoutRedirectUri); for (String uri : postLogoutRedirectUris) { log.debug("Comparing {} == {}", uri, postLogoutRedirectUri); if (uri.equals(postLogoutRedirectUri)) { return postLogoutRedirectUri; } } } else { // Accept Request Without post_logout_redirect_uri when One Registered if (postLogoutRedirectUris != null && postLogoutRedirectUris.length == 1) { return postLogoutRedirectUris[0]; } } } if (!isBlank) { errorResponseFactory.throwBadRequestException(EndSessionErrorResponseType.POST_LOGOUT_URI_NOT_ASSOCIATED_WITH_CLIENT); } return null; }
if (Util.isNullOrEmpty(logoutUri)) { continue; // skip client if logout_uri is blank
if (!Util.isNullOrEmpty(entity) && !entity.contains("<html>")) { try { JSONObject jsonObj = new JSONObject(entity);
Util.addToJSONObjectIfNotNull(responseJsonObject, SOFTWARE_STATEMENT.toString(), client.getSoftwareStatement()); if (!Util.isNullOrEmpty(client.getJwks())) { Util.addToJSONObjectIfNotNull(responseJsonObject, JWKS.toString(), new JSONObject(client.getJwks()));