in services/oidc/src/main/java/org/apache/cxf/fediz/service/oidc/clients/ClientRegistrationService.java [383:445]
private void updateClientDetails(final Client client,
String audience, String redirectURI, String logoutURI, String homeRealm) {
// Client Redirect URIs
if (!StringUtils.isEmpty(redirectURI)) {
String[] allUris = redirectURI.trim().split(" ");
List<String> redirectUris = new ArrayList<>(allUris.length);
for (String uri : allUris) {
if (!StringUtils.isEmpty(uri)) {
if (!isValidURI(uri, false)) {
throw new InvalidRegistrationException("An invalid redirect URI was specified: "
+ StringEscapeUtils.escapeHtml4(uri));
}
redirectUris.add(uri);
}
}
client.setRedirectUris(redirectUris);
} else {
client.setRedirectUris(Collections.emptyList());
}
// Client Logout URI
if (!StringUtils.isEmpty(logoutURI)) {
String[] logoutUris = logoutURI.split(" ");
for (String uri : logoutUris) {
if (!isValidURI(uri, false)) {
throw new InvalidRegistrationException("An invalid logout URI was specified: "
+ StringEscapeUtils.escapeHtml4(uri));
}
}
//TODO: replace this code with newClient.setLogoutUri() once it becomes available
client.getProperties().put("post_logout_redirect_uris", logoutURI);
} else {
client.getProperties().remove("post_logout_redirect_uris");
}
// Client Audience URIs
if (!StringUtils.isEmpty(audience)) {
String[] auds = audience.trim().split(" ");
List<String> registeredAuds = new ArrayList<>(auds.length);
for (String aud : auds) {
if (!StringUtils.isEmpty(aud)) {
if (!isValidURI(aud, true)) {
throw new InvalidRegistrationException("An invalid audience URI was specified: "
+ StringEscapeUtils.escapeHtml4(aud));
}
registeredAuds.add(aud);
}
}
client.setRegisteredAudiences(registeredAuds);
} else {
client.setRegisteredAudiences(Collections.emptyList());
}
// Client Realm
if (homeRealm != null) {
client.setHomeRealm(homeRealm);
if (homeRealms.containsKey(homeRealm)) {
client.getProperties().put("homeRealmAlias", homeRealms.get(homeRealm));
} else {
client.getProperties().remove("homeRealmAlias");
}
}
}