提交 9447289c 编写于 作者: K Kohsuke Kawaguchi

[FIXED JENKINS-16368]

HyperlinkNote shouldn't emit the absolute URL.
上级 00bfa356
......@@ -64,6 +64,9 @@ Upcoming changes</a>
<li class=bug>
Fixed "Manage" sub-contextmenu for non-standalone deployments
(<a href="https://github.com/jenkinsci/jenkins/pull/721">pull 721</a>)
<li class=bug>
Absolute URLs in console output
(<a href="https://issues.jenkins-ci.org/browse/JENKINS-16368">issue 16368</a>)
<li class=bug>
Revert ampersand encoding which can cause backwad incompatibility issue
(<a href="https://github.com/jenkinsci/jenkins/pull/683">pull 683</a>)
......
......@@ -183,6 +183,8 @@ public class Functions {
the same thing as "/abc/def.ghi", but this avoids the stale cache
problem when the user upgrades to new Jenkins. Stapler also sets a long
future expiration dates for such static resources.
see https://wiki.jenkins-ci.org/display/JENKINS/Hyperlinks+in+HTML
*/
context.setVariable("resURL",rootURL+getResourcePath());
context.setVariable("imagesURL",rootURL+getResourcePath()+"/images");
......
......@@ -26,6 +26,8 @@ package hudson.console;
import hudson.Extension;
import hudson.MarkupText;
import jenkins.model.Jenkins;
import org.kohsuke.stapler.Stapler;
import org.kohsuke.stapler.StaplerRequest;
import java.io.IOException;
import java.util.logging.Level;
......@@ -53,8 +55,16 @@ public class HyperlinkNote extends ConsoleNote {
@Override
public ConsoleAnnotator annotate(Object context, MarkupText text, int charPos) {
String url = this.url;
if (url.startsWith("/"))
url = Jenkins.getInstance().getRootUrl()+url.substring(1);
if (url.startsWith("/")) {
StaplerRequest req = Stapler.getCurrentRequest();
if (req!=null) {
// if we are serving HTTP request, we want to use app relative URL
url = req.getContextPath()+url;
} else {
// otherwise presumably this is rendered for e-mails and other non-HTTP stuff
url = Jenkins.getInstance().getRootUrl()+url.substring(1);
}
}
text.addMarkup(charPos, charPos + length, "<a href='" + url + "'"+extraAttributes()+">", "</a>");
return null;
}
......
......@@ -1864,6 +1864,7 @@ public class Jenkins extends AbstractCIBase implements ModifiableTopLevelItemGro
* @since 1.66
* @see Descriptor#getCheckUrl(String)
* @see #getRootUrlFromRequest()
* @see <a href="https://wiki.jenkins-ci.org/display/JENKINS/Hyperlinks+in+HTML">Hyperlinks in HTML</a>
*/
public String getRootUrl() {
String url = JenkinsLocationConfiguration.get().getUrl();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册