private String[] getReferrer() { String referrer = uriInfo.getQueryParameters().getFirst("referrer"); if (referrer == null) { return null; } String referrerUri = uriInfo.getQueryParameters().getFirst("referrer_uri"); ClientModel referrerClient = realm.getClientByClientId(referrer); if (referrerClient != null) { if (referrerUri != null) { referrerUri = RedirectUtils.verifyRedirectUri(uriInfo, referrerUri, realm, referrerClient); } else { referrerUri = ResolveRelative.resolveRelativeUri( uriInfo.getRequestUri(), client.getRootUrl(), referrerClient.getBaseUrl()); } if (referrerUri != null) { return new String[] {referrer, referrerUri}; } } else if (referrerUri != null) { referrerClient = realm.getClientByClientId(referrer); if (client != null) { referrerUri = RedirectUtils.verifyRedirectUri(uriInfo, referrerUri, realm, referrerClient); if (referrerUri != null) { return new String[] {referrer, referrerUri}; } } } return null; }
@Override public String getBaseUrl() { if (updated != null) return updated.getBaseUrl(); return cached.getBaseUrl(); }