What changed?
Starting with version 8.3, the system authentication mechanism provides in-app authentication based on JWT. Cookie-based
...
authentication is replaced with JWT-based authentication transferred by the Authorization header.
...
The authentication token has 15 minutes expiration time. When the authentication token expires, a refresh token is used to query the new authentication token.
Impact
Info |
---|
In order to successfully An additional authorization step is required to use automation successfully (and communicate with our API) an additional authorization step is required. |
Instructions
When any client starts using the service, it should authenticate under under /system/auth endpoint endpoint (e.g., https://yourjira.com/rest/softwareplant-bigpicture/1.0/system/auth)
Step one - authentication request
Use the GET/ system/auth request (cookie: JSESSIONID, which represents a session in Jira where BP/BG/BT is working).
As a response, you will receive either:
two tokens
authentication (valid for 15 min)
refresh (valid for
...
seven days)
HTTP 401 → If Jira doesn't prohibit it, you can use basic authentication instead of using cookie JSESSIOND - forward to request username and password.
Code Block |
---|
{ "authentication": "$authenticationJWT", "refresh": "$refreshJWT" } |
/system/auth endpoint endpoint is free accessible of authentication filter for application.
Step two - implementation
A valid authentication token should be attached to the Authorization header for every BigPicture/ BigGantt/ BigTemplate request - the authorization header must contain the value of the authentication field (received as a response from system/auth).
Because our applications function in the Jira environment, the JSESSIONID cookie must still
...
be forwarded to our endpoints.
Step three - token refresh
An authentication token is valid for a limited time. Query The query for an authentication token refresh refreshes when it expires.
When the token expires, the API will respond with an HTTP 401.
Query /system/reauth
...
endpoint using refresh token in Authorization header. Use the refresh token (the value of the refresh field received as a response from system/auth) for authorization → GET /system/reauth request.
The response will contain a new authentication token. Use it as described in step two above.
Code Block |
---|
{ "authentication": "$authenticationJWT" } |
...