in src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/AbstractPostServlet.java [299:343]
protected String getRedirectUrl(HttpServletRequest request, PostResponse ctx) throws IOException {
// redirect param has priority (but see below, magic star)
String result = request.getParameter(SlingPostConstants.RP_REDIRECT_TO);
if (result != null) {
try {
URI redirectUri = new URI(result);
if (redirectUri.getAuthority() != null) {
// if it has a host information
throw new IOException("The redirect target included host information. This is not allowed for security reasons!");
}
} catch (URISyntaxException e) {
throw new IOException("The redirect target was not a valid uri");
}
if (ctx.getPath() != null) {
// redirect to created/modified Resource
final int star = result.indexOf('*');
if (star >= 0) {
StringBuilder buf = new StringBuilder();
// anything before the star
if (star > 0) {
buf.append(result.substring(0, star));
}
// append the name of the manipulated node
buf.append(ResourceUtil.getName(ctx.getPath()));
// anything after the star
if (star < result.length() - 1) {
buf.append(result.substring(star + 1));
}
// use the created path as the redirect result
result = buf.toString();
} else if (result.endsWith(SlingPostConstants.DEFAULT_CREATE_SUFFIX)) {
// if the redirect has a trailing slash, append modified node
// name
result = result.concat(ResourceUtil.getName(ctx.getPath()));
}
}
}
return result;
}