Skip to main content
Example scripts
arrow icon
To homepage
Jira
Data centre icon
Data Center

Use TrustedRequestFactory to make an HTTP GET request without the user password

Created 2 year(s) ago, Updated 8 month(s) ago
App in script
ScriptRunner For Jira
ScriptRunner For Jira
by Adaptavist
Compatibility
compatibility bullet
Jira (8.0 - 8.19)
compatibility bullet
ScriptRunner For Jira (7.10.0)
Language |
groovy
import com.atlassian.sal.api.ApplicationProperties
import com.atlassian.sal.api.UrlMode
import com.atlassian.sal.api.net.Request
import com.atlassian.sal.api.net.TrustedRequestFactory
import com.onresolve.scriptrunner.runner.customisers.PluginModule
import groovy.json.JsonSlurper
import groovyx.net.http.URIBuilder

@PluginModule
TrustedRequestFactory trustedRequestFactory

@PluginModule
ApplicationProperties applicationProperties

def url = applicationProperties.getBaseUrl(UrlMode.CANONICAL) + '/rest/api/2/myself'
def request = trustedRequestFactory.createTrustedRequest(Request.MethodType.GET, url)

def host = new URIBuilder(url).host
request.addTrustedTokenAuthentication(host)

def responseBody = request.execute()

def currentUser = new JsonSlurper().parseText(responseBody) as Map

currentUser

/*
   responseBody is a JSON string that looks like:

  {
    "self": "http://localhost:8080/jira/rest/api/2/user?username=admin",
    "key": "admin",
    "name": "admin",
    "emailAddress": "admin@admin.com",
    "avatarUrls": {
      "48x48": "https://www.gravatar.com/avatar/64e1b8d34f425d19e1ee2ea7236d3028?d=mm&s=48",
      "24x24": "https://www.gravatar.com/avatar/64e1b8d34f425d19e1ee2ea7236d3028?d=mm&s=24",
      "16x16": "https://www.gravatar.com/avatar/64e1b8d34f425d19e1ee2ea7236d3028?d=mm&s=16",
      "32x32": "https://www.gravatar.com/avatar/64e1b8d34f425d19e1ee2ea7236d3028?d=mm&s=32"
    },
    "displayName": "Mr Admin",
    "active": true,
    "timeZone": "Europe/London",
    "locale": "en_GB",
    "groups": {
      "size": 4,
      "items": [
      ]
    },
    "applicationRoles": {
      "size": 2,
      "items": [
      ]
    },
    "expand": "groups,applicationRoles"
  }
*/
Having an issue with this script?
Report it here