KEYCLOAK-4234: Link to app in acct mgt doesn't use root url (#4285)
* KEYCLOAK-4234: Link to app in acct mgt not use root url * Add tests.
This commit is contained in:
1 parent
09ec642543
commit
32b16717a7
5 files changed
+91
-4
No files matched your search
+42
-1
@@ -140,7 +140,48 @@ public class ApplicationsBean {
|
||||
public MultivaluedHashMap<String, ClientRoleEntry> getResourceRolesGranted() {
|
||||
return resourceRolesGranted;
|
||||
}
|
||||
|
||||
|
||||
public String getEffectiveUrl() {
|
||||
String rootUrl = getClient().getRootUrl();
|
||||
String baseUrl = getClient().getBaseUrl();
|
||||
|
||||
if (rootUrl == null) rootUrl = "";
|
||||
if (baseUrl == null) baseUrl = "";
|
||||
|
||||
if (rootUrl.equals("") && baseUrl.equals("")) {
|
||||
return "";
|
||||
}
|
||||
|
||||
if (rootUrl.equals("") && !baseUrl.equals("")) {
|
||||
return baseUrl;
|
||||
}
|
||||
|
||||
if (!rootUrl.equals("") && baseUrl.equals("")) {
|
||||
return rootUrl;
|
||||
}
|
||||
|
||||
if (isBaseUrlRelative() && !rootUrl.equals("")) {
|
||||
return concatUrls(rootUrl, baseUrl);
|
||||
}
|
||||
|
||||
return baseUrl;
|
||||
}
|
||||
|
||||
private String concatUrls(String u1, String u2) {
|
||||
if (u1.endsWith("/")) u1 = u1.substring(0, u1.length() - 1);
|
||||
if (u2.startsWith("/")) u2 = u2.substring(1);
|
||||
return u1 + "/" + u2;
|
||||
}
|
||||
|
||||
private boolean isBaseUrlRelative() {
|
||||
String baseUrl = getClient().getBaseUrl();
|
||||
if (baseUrl.equals("")) return false;
|
||||
if (baseUrl.startsWith("/")) return true;
|
||||
if (baseUrl.startsWith("./")) return true;
|
||||
if (baseUrl.startsWith("../")) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
public ClientModel getClient() {
|
||||
return client;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user