Base-URL can't end with "/" ?

momoXD December 20, 2018

We recently installed Jira behind a proxy (Apache). Jira was accessible via https://subsubdomain.subdomain.domain.com/jira/ however after logging in users were forwarded to  https://subsubdomain.subdomain.domain.com/jiraLOGIN_PAGE_JIRA

(note the missing "/" after  "/jira"). The proxy couldn't recognize that path and therefore threw a 404, however if users manually added the missing slash everything worked like a charm.

So we thought we forgot to configure "/" in the base-url and it really wasn't there when we looked into the settings through the admin page in the frontend. Naturally, we tried to change it and discovered that Jira simply did not accept our base-url ending with a slash. It seemed like the frontend's Java-Script just removed it (Note changing the base-url to "https://subsubdomain.subdomain.domain.com/jira/ABC" worked fine). So typing in a path ending in [...]ABC/ results in the base-url [...]ABC being saved without any notice to the user that slash was removed or something.

 

Until now we are not sure if this is a bug or a feature.

So would be nice to know if other folks encountered this "problem" and also would be great if someone from Atlassian could comment if this is a desired behavior or a bug.

 

If anyone really has this problem the fix is:

just add another proxy rule that forwards

https://subsubdomain.subdomain.domain.com/jira (Note: no slash at the end here) to the same backend as your old rule for https://subsubdomain.subdomain.domain.com/jira/ does.

So a simple copy and paste and removal of one slash followed by a restart of your Apache proxy solves the problem.

 

Any information on this topic is greatly appreciated.

1 answer

2 votes
Nic Brough -Adaptavist-
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
December 20, 2018

You can end a base url with a slash, but it has to match the proxy and the connector exactly.

There is not much more to say on this - make sure the three settings all line up and it should work.  Or, stick to standards and don't include it at all.

momoXD December 20, 2018

EDIT: deleted this comment as it was posted two times by mistake

momoXD December 20, 2018

Let me rephrase that what you're saying is that the address and proxyName attributes of the connector whithin Jira's Tomcat-config (by default server.xml) should have the exact path so basically like this:

 

 <Connector address="subdoamain.subdoamain.domain.com/jira/" port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
relaxedPathChars="[]|" relaxedQueryChars="[]|{}^&#x5c;&#x60;&quot;&lt;&gt;"
maxHttpHeaderSize="8192" SSLEnabled="true"
maxThreads="150" minSpareThreads="25"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
sslEnabledProtocols="TLSv1.2,TLSv1.3"
clientAuth="false" useBodyEncodingForURI="true"
keyAlias="jira" keystoreFile="/path/to/jira/atlassian/jira/ssl/subdoamain.subdoamain.domain.com-jira.jks" keystorePass="BATMAN"
keystoreType="JKS"
proxyName="subdoamain.subdoamain.domain.com/jira/" proxyPort="443"
/>

 Is that what you're saying or did I misinterpret your answer?

momoXD December 20, 2018

Let me rephrase that. What you're saying is the attributes "address" and "proxyName" of the proxy-connector within Jira's Tomcat config have to match the base-url exactly?

So according to my example they  should  ALL be: "https://subsubdomain.subdomain.domain.com/jira/"

 

Is that a correct way of rephrasing your answer?

Nic Brough -Adaptavist-
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
December 20, 2018

No, but I did not explain "match" correctly.

Let's say your Jira server is on http://myjira.com, running on port 8080 and you want to run it on a base url of http://mycompany/jira without a port

  • Your base url will be http://mycompany/jira
  • Your proxy and reverse will be /jira http://myjira.com:8080/jira
  • The context in your connector will be /jira

When I say they all need to match, you need to match all the slashes (or leave them off) consistently - in other words, for all three lines above, add the slash to the end of everything, all 4 points.  (Or don't do it at all because you don't need it and some applications that might connect to it don't like it)

Suggest an answer

Log in or Sign up to answer