# Stash Latest (2.9) : Configuring JIRA integration in the Setup Wizard

Added by pwatson , edited by pwatson on Aug 30, 2013

This page describes the 'JIRA integration' screen of the Stash setup wizard.

You can connect your application to a JIRA server, to manage your users via JIRA and share information with JIRA. When you are installing the application, the setup wizard gives you the opportunity to configure the JIRA connection automatically. This is a quick way of setting up your JIRA integration with the most common options.

You can also configure the JIRA connections via the application administration screens. In that case, you will need to set up connections individually. There are two parts to the integration process:

- A peer-to-peer link between JIRA and the application for sharing information and facilitating integration features. This link is set up via Application Links.
- A client-server link between the application and JIRA for delegating user and group management to your JIRA server.

Requirements: You need JIRA 4.3 or later.

On this page:

Related pages:

- Getting started
- JIRA integration
- Connecting Stash to JIRA for user management

## Connecting to JIRA in the Setup Wizard

To configure JIRA integration while running the Stash setup wizard:

1. Configure the following setting in JIRA: Allow remote API access.

2. Click Integrate with JIRA and enter the following information when you get to the 'Connect to JIRA' step of the setup wizard:

   JIRA base URL | The web address of your JIRA server. Examples are: `http://www.example.com:8080/jira/` `http://jira.example.com`
   JIRA admin username | The credentials for a user with the 'JIRA System Administrators' global permission in JIRA.
   JIRA password
   Stash base URL | JIRA will use this URL to access your Stash server. The URL you give here will override the base URL specified in your Stash administration console, for the purposes of the JIRA connection.

   We recommend that you make use of the automatic back-linking from JIRA to Stash.

3. Click Connect.
4. Finish the setup process.

## Troubleshooting

Click to see troubleshooting information...

This section describes the possible problems that may occur when integrating your application with JIRA via the setup wizard, and the solutions for each problem.

Symptom | Cause | Solution
--- | --- | ---
The setup wizard displays one of the following error messages: Failed to create application link from JIRA server at <URL> to this <application> server at <URL>. Failed to create application link from this <application> server at <URL> to JIRA server at <URL>. Failed to authenticate application link from JIRA server at <URL> to this <application> server at <URL>. Failed to authenticate application link from <application> server at <URL> to this JIRA server at <URL>. | The setup wizard failed to complete registration of the peer-to-peer application link with JIRA. JIRA integration is only partially configured. | Remove the partial configuration if it exists, try the 'Connect to JIRA' step again, and then continue with the setup. Detailed instructions are below.
The setup wizard displays one of the following error messages: Failed to register <application> configuration in JIRA for shared user management. Received invalid response from JIRA: <response> Failed to register <application> configuration in JIRA for shared user management. Received: <response> | The setup wizard failed to complete registration of the client-server link with JIRA for user management. The peer-to-peer link was successfully created, but integration is only partially configured. | Remove the partial configuration if it exists, try the 'Connect to JIRA' step again, and then continue with the setup. Detailed instructions are below.
The setup wizard displays the following error message: Error setting Crowd authentication | The setup wizard successfully established the peer-to-peer link with JIRA, but could not persist the client-server link for user management in your `config.xml` file. This may be caused by a problem in your environment, such as a full disk. | Please investigate and fix the problem that prevented the application from saving the configuration file to disk. Then remove the partial configuration if it exists, try the 'Connect to JIRA' step again, and then continue with the setup. Detailed instructions are below.
The setup wizard displays the following error message: Error reloading Crowd authentication | The setup wizard has completed the integration of your application with JIRA, but is unable to start synchronizing the JIRA users with your application. | Restart your application. You should then be able to continue with the setup wizard. If this solution does not work, please contact Atlassian Support.
The setup wizard displays the following error message: An error occurred: java.lang.IllegalStateException: Could not create the application in JIRA/Crowd (code: 500). Please refer to the logs for details. | The setup wizard has not completed the integration of your application with JIRA. The links are only partially configured. The problem occurred because there is already a user management configuration in JIRA for this <application> URL. | Remove the partial configuration if it exists, try the 'Connect to JIRA' step again, and then continue with the setup. Detailed instructions are below.
No users can log in after you have set up the application with JIRA integration. | Possible causes: There are no users in the group that you specified on the 'Connect to JIRA' screen. For FishEye: There are no groups specified in the 'groups to synchronize' section of your administration console. For Stash: You may not have granted any JIRA groups or users permissions to log in to Stash. | Go to JIRA and add some usernames to the group. For FishEye: Go to the FishEye administration screens and specify at least one group to synchronize. The default is 'jira-users'. For Stash: Grant the Stash User permission to the relevant JIRA groups on the Stash Global permissions page. If this solution does not work, please contact Atlassian Support.

### Solution 1: Removing a Partial Configuration – The Easiest Way

If the application's setup wizard fails part-way through setting up the JIRA integration, you may need to remove the partial configuration from JIRA before continuing with your application setup. Please follow the steps below.

Remove the partial configuration if it exists, try the 'Connect to JIRA' step again, and then continue with the setup wizard:

1. Log in to JIRA as a user with the 'JIRA System Administrators' global permission.
2. Click the 'Administration' link on the JIRA top navigation bar.
3. Remove the application link from JIRA, if it exists:
   1. Click 'Application Links' in the JIRA administration menu. The 'Configure Application Links' page will appear, showing the application links that have been set up.
   2. Look for a link to your application. It will have a base URL of the application linked to JIRA. For example:
      - If you want to remove a link between JIRA and FishEye, look for the one where the 'Application URL' matches the base URL of your FishEye server.
      - If you want to remove a link between JIRA and Confluence, look for the one where the 'Application URL' matches the base URL of your Confluence server.
      - If you want to remove a link between JIRA and Stash, look for the one where the 'Application URL' matches the base URL of your Stash server.
   3. Click the 'Delete' link next to the application link that you want to delete.
   4. A confirmation screen will appear. Click the 'Confirm' button to delete the application link.
4. Remove the user management configuration from JIRA, if it exists:
   1. Go to the JIRA administration screen for configuring the applications that have been set up to use JIRA for user management:
      - In JIRA 4.3: Click 'Other Applications' in the 'Users, Groups & Roles' section of the JIRA administration screen.
      - In JIRA 4.4: Select 'Administration' > 'Users' > 'JIRA User Server'.
   2. Look for a link to your application. It will have a name matching this format:

          <Type> - <HostName> - <Application ID>

      For example:

          FishEye / Crucible - localhost - 92004b08-5657-3048-b5dc-f886e662ba15

      Or:

          Confluence - localhost - 92004b08-5657-3048-b5dc-f886e662ba15

      If you have multiple servers of the same type running on the same host, you will need to match the application ID of your application with the one shown in JIRA. To find the application ID:
      - Go to the following URL in your browser:

            <baseUrl>/rest/applinks/1.0/manifest

        Replace `<baseUrl>` with the base URL of your application.
        For example:

            http://localhost:8060/rest/applinks/1.0/manifest

      - The application links manifest will appear. Check the application ID in the `<id>` element.
   3. In JIRA, click 'Delete' next to the application that you want to remove.
5. Go back to the setup wizard and try the 'Connect to JIRA' step again.

### Solution 2: Removing a Partial Configuration – The Longer Way

If solution 1 above does not work, you may need to remove the partial configruration and then add the full integration manually. Please follow these steps:

1. Skip the 'Connect to JIRA' step and continue with the setup wizard, to complete the initial configuration of the application.
2. Log in to JIRA as a user with the 'JIRA System Administrators' global permission.
3. Click the 'Administration' link on the JIRA top navigation bar.
4. Remove the application link from JIRA, if it exists:
   1. Click 'Application Links' in the JIRA administration menu. The 'Configure Application Links' page will appear, showing the application links that have been set up.
   2. Look for a link to your application. It will have a base URL of the application linked to JIRA. For example:
      - If you want to remove a link between JIRA and FishEye, look for the one where the 'Application URL' matches the base URL of your FishEye server.
      - If you want to remove a link between JIRA and Confluence, look for the one where the 'Application URL' matches the base URL of your Confluence server.
      - If you want to remove a link between JIRA and Stash, look for the one where the 'Application URL' matches the base URL of your Stash server.
   3. Click the 'Delete' link next to the application link that you want to delete.
   4. A confirmation screen will appear. Click the 'Confirm' button to delete the application link.
5. Remove the user management configuration from JIRA, if it exists:
   1. Go to the JIRA administration screen for configuring the applications that have been set up to use JIRA for user management:
      - In JIRA 4.3: Click 'Other Applications' in the 'Users, Groups & Roles' section of the JIRA administration screen.
      - In JIRA 4.4: Select 'Administration' > 'Users' > 'JIRA User Server'.
   2. Look for a link to your application. It will have a name matching this format:

          <Type> - <HostName> - <Application ID>

      For example:

          FishEye / Crucible - localhost - 92004b08-5657-3048-b5dc-f886e662ba15

      Or:

          Confluence - localhost - 92004b08-5657-3048-b5dc-f886e662ba15

      If you have multiple servers of the same type running on the same host, you will need to match the application ID of your application with the one shown in JIRA. To find the application ID:
      - Go to the following URL in your browser:

            <baseUrl>/rest/applinks/1.0/manifest

        Replace `<baseUrl>` with the base URL of your application.
        For example:

            http://localhost:8060/rest/applinks/1.0/manifest

      - The application links manifest will appear. Check the application ID in the `<id>` element.
   3. In JIRA, click 'Delete' next to the application that you want to remove.
6. Add the application link in JIRA again, so that you now have a two-way trusted link between JIRA and your application:
   1. Click 'Add Application Link'. Step 1 of the link wizard will appear.
   2. Enter the server URL of the application that you want to link to (the 'remote application').
   3. Click the 'Next' button.
   4. Enter the following information:
      - 'Create a link back to this server' – Tick this check box to add a two-way link between the two applications.
      - 'Username' and 'Password' – Enter the credentials for a username that has administrator access to the remote application.
        Note: These credentials are only used to authenticate you to the remote application, so that Application Links can make the changes required for the new link. The credentials are not saved.
      - 'Reciprocal Link URL' – The URL you give here will override the base URL specified in your remote application's administration console, for the purposes of the application links connection. Application Links will use this URL to access the remote application.
   5. Click the 'Next' button.
   6. Enter the information required to configure authentication for your application link:
      - 'The servers have the same set of users' – Tick this check box, because the users are the same in both applications.
      - 'These servers fully trust each other' – Tick this check box, because you trust the code in both applications and are sure both applications will maintain the security of their private keys.
        For more information about configuring authentication, see Configuring Authentication for an Application Link.
   7. Click the 'Create' button to create the application link.
7. Configure a new connection for user management in JIRA:
   1. Go to the JIRA administration screen for configuring the applications that have been set up to use JIRA for user management:
      - In JIRA 4.3: Click 'Other Applications' in the 'Users, Groups & Roles' section of the JIRA administration screen.
      - In JIRA 4.4: Select 'Administration' > 'Users' > 'JIRA User Server'.
   2. Add an application.
   3. Enter the application name and password that your application will use when accessing JIRA.
   4. Enter the IP address or addresses of your application. Valid values are:
      - A full IP address, e.g. `192.168.10.12`.
      - A wildcard IP range, using CIDR notation, e.g. `192.168.10.1/16`. For more information, see the introduction to CIDR notation on Wikipedia and RFC 4632.
      - Save the new application.
8. Set up the JIRA user directory in the application.
   - For Confluence:
     1. Go to the Confluence Administration Console.
     2. Click 'User Directories' in the left-hand panel.
     3. Add a directory and select type 'Atlassian JIRA'.
     4. Enter the following information:
        - Name – Enter the name of your JIRA server.
        - Server URL – Enter web address of your JIRA server. Examples:

              http://www.example.com:8080/jira/
              http://jira.example.com

        - Application name and Application password – Enter the values that you defined for Confluence in the settings on JIRA.
     5. Save the directory settings.
     6. Define the directory order by clicking the blue up- and down-arrows next to each directory on the 'User Directories' screen.
        For details see Connecting to Crowd or JIRA for User Management.
   - For FishEye/Crucible:
     1. Click Authentication (under 'Security Settings').
     2. Click Setup JIRA/Crowd authentication. Note, if LDAP authentication has already been set up, you will need to remove that before connecting to JIRA for user management.

     3. Make the following settings:

        Authenticate against | Select a JIRA instance
        Application name and password | Enter the values that you defined for your application in the settings on JIRA.
        JIRA URL | The web address of your JIRA server. Examples:
            http://www.example.com:8080/jira/
            http://jira.example.com
        Auto-add | Select Create a FishEye user on successful login so that your JIRA users will be automatically added as a FishEye user when they first log in.
        Periodically synchronise users with JIRA | Select Yes to ensure that JIRA will synchronize all changes in the user information on a regular basis. Change the value for Synchronise Period if required.
        When Synchronisation Happens | Select an option depending on whether you want to allow changes to user attributes from within FishEye.
        Single Sign On | Select Disabled. SSO is not available when using JIRA for user management and if enabled will make the integration fail.

     4. Click Next and select at least one user group to be synchronised from JIRA. If necessary, you could create a new group in JIRA, such as 'fisheye-users', and select this group here.
     5. Click Save.
   - For Stash:
     1. Go to the Stash administration area.
     2. Click User Directories in the left-hand panel.
     3. Add a directory and select type Atlassian JIRA.
     4. Enter the following information:
        - Name – Enter the name of your JIRA server.

        - Server URL– Enter web address of your JIRA server. Examples:

              http://www.example.com:8080/jira/
              http://jira.example.com

        - Application name and Application password – Enter the values that you defined for Stash in the settings on JIRA.
     5. Save the directory settings.
     6. Define the directory order by clicking the blue up- and down-arrows next to each directory on the 'User Directories' screen.
        For details see Connecting Stash to JIRA for user management.

## Notes

When you connect to JIRA in the setup wizard, the setup procedure will configure OAuth authentication between Stash and JIRA. See Configuring OAuth Authentication for an Application Link for more information.