Jira SSO Authenticator using Apache and not using cookie elements in the authenticator to allow Apache to deal with it instead - works with Jira 6.x
We use Apache as a ajp/proxy that was setup for sso and mod_ajp, so our url to Jira arrives from the Apache server with the remote user/principal. In apache we excluded jira from basic authentication via a LocationMatch check and added following stanza that proxies over to the Jira server:
#JIRA AJP Proxy config
ProxyPreserveHost On
<Location /apps/jira>
Satisfy Any
Allow from all
RewriteEngine On
RewriteCond %{HTTP_HOST} !yourapacheserver.com
RewriteRule (.*) http://yourapacheserver.com%{REQUEST_URI} [R=307]
ProxyPass ajp://yourjiraserver.com:8009/apps/jira # in server.xml we set path="/apps/jira"
ProxyPassReverse ajp://yourjiraserver.com:8009/apps/jira
</Location>
In the Jira server.xml we uncommented the ajp section.
Added to ajp connector in server.xml: tomcatAuthentication="false"
Copied sas folder to WEB-INF/classes/com folder. Modified seraph-config.xml:
Commented out existing JiraSeraphAuthenticator line and added:
Added our URLs for login.url, logout.url, and link.url that were provided by our openAM server administrators.Examples:
<param-name>login.url</param-name>
<param-value>https://youropenamserver.com/opensso/UI/Login?realm=/sww&goto=${originalurl};</param-value>
# Hint: we had to use & instead of & with goto= since xml does not like ampersands...
<param-name>link.login.url</param-name>
<param-value>https://youropenamserver.com/opensso/UI/Login?realm=/sww&goto=${originalurl};</param-value>
<param-name>logout.url</param-name>
<param-value>http://youropenamserver.com/logout</param-value>
The only issue I see so far is I do not get prompted to go into Administrator mode anymore. I went back to the old way of having a
non-Administrator login for the times I need to work as a regular user.
Added to Jira's WEB-INF/classes/log4j.properties: log4j.logger.com.sas.mis.des.seraph.SSOAuthenticator = INFO, console, filelog log4j.additivity.com.sas.mis.des.seraph.SSOAuthenticator = false