public String getTransformedURL(Core core) { String result = getUrl(); log.debug("URL before transformation: " + url); // index.jsp?param=${type}¶m2=${id}¶m3=${fieldname} Pattern p = Pattern.compile("(?!\\$\\{)([A-Za-z0-9]+?)(?:\\})", Pattern.CASE_INSENSITIVE); List<String> list = new ArrayList<String>(); Matcher m = p.matcher(url); while (m.find()) { String tokenpart = m.group(1); log.debug("tokenpart = " + tokenpart); list.add(tokenpart); } log.debug("We found parameters: " + list); for (String param : list) { if ("user".equalsIgnoreCase(param)) { result = result.replaceAll("\\$\\{user\\}", core.getLoggedInUser().getUserName()); } } log.debug("Returning URL: " + result); return result; }