class JIRA::JwtClient::JwtUriBuilder

Attributes

http_method[R]
issuer[R]
request_url[R]
shared_secret[R]
site[R]

Public Class Methods

new(request_url, http_method, shared_secret, site, issuer) click to toggle source
# File lib/jira/jwt_client.rb, line 20
def initialize(request_url, http_method, shared_secret, site, issuer)
  @request_url = request_url
  @http_method = http_method
  @shared_secret = shared_secret
  @site = site
  @issuer = issuer
end

Public Instance Methods

build() click to toggle source
# File lib/jira/jwt_client.rb, line 28
def build
  uri = URI.parse(request_url)
  new_query = URI.decode_www_form(String(uri.query)) << ['jwt', jwt_header]
  uri.query = URI.encode_www_form(new_query)

  return uri.to_s unless uri.is_a?(URI::HTTP)

  uri.request_uri
end

Private Instance Methods

jwt_header() click to toggle source
# File lib/jira/jwt_client.rb, line 40
def jwt_header
  claim = Atlassian::Jwt.build_claims \
    issuer,
    request_url,
    http_method.to_s,
    site,
    (Time.now - 60).to_i,
    (Time.now + 86_400).to_i

  JWT.encode claim, shared_secret
end