Class: Atlassian::JiraConnect::Jwt::Symmetric

Inherits:
Object
  • Object
show all
Includes:
Gitlab::Utils::StrongMemoize
Defined in:
lib/atlassian/jira_connect/jwt/symmetric.rb

Constant Summary collapse

CONTEXT_QSH_STRING =
'context-qsh'

Instance Method Summary collapse

Constructor Details

#initialize(jwt) ⇒ Symmetric

Returns a new instance of Symmetric.



11
12
13
# File 'lib/atlassian/jira_connect/jwt/symmetric.rb', line 11

def initialize(jwt)
  @jwt = jwt
end

Instance Method Details

#iss_claimObject



15
16
17
# File 'lib/atlassian/jira_connect/jwt/symmetric.rb', line 15

def iss_claim
  jwt_headers['iss']
end

#sub_claimObject



19
20
21
# File 'lib/atlassian/jira_connect/jwt/symmetric.rb', line 19

def sub_claim
  jwt_headers['sub']
end

#valid?(shared_secret) ⇒ Boolean

Returns:

  • (Boolean)


23
24
25
26
27
# File 'lib/atlassian/jira_connect/jwt/symmetric.rb', line 23

def valid?(shared_secret)
  Atlassian::Jwt.decode(@jwt, shared_secret).present?
rescue JWT::DecodeError
  false
end

#verify_context_qsh_claimObject



35
36
37
# File 'lib/atlassian/jira_connect/jwt/symmetric.rb', line 35

def verify_context_qsh_claim
  qsh_claim == CONTEXT_QSH_STRING
end

#verify_qsh_claim(url_with_query, method, url) ⇒ Object



29
30
31
32
33
# File 'lib/atlassian/jira_connect/jwt/symmetric.rb', line 29

def verify_qsh_claim(url_with_query, method, url)
  qsh_claim == Atlassian::Jwt.create_query_string_hash(url_with_query, method, url)
rescue StandardError
  false
end