Module: Wso2Toolbox::TokenManager::Adapters::RailsCachedAdapter

Defined in:
lib/wso2_toolbox/token_manager/adapters/rails_cached_adapter.rb

Constant Summary collapse

TOKEN_DELAY =
5.minutes

Class Method Summary collapse

Class Method Details

.active_token?Boolean

Returns:

  • (Boolean)


62
63
64
# File 'lib/wso2_toolbox/token_manager/adapters/rails_cached_adapter.rb', line 62

def active_token?
  Time.parse(Setting.token_time_for_job.to_s) - TOKEN_DELAY > Time.now
end

.build_settings(token_params) ⇒ Object



41
42
43
44
45
46
47
# File 'lib/wso2_toolbox/token_manager/adapters/rails_cached_adapter.rb', line 41

def build_settings(token_params)
  Setting.access_token = token_params[:access_token]
  Setting.refresh_token = token_params[:refresh_token]
  build_token_for_job(token_params[:token_type],
                      token_params[:access_token])
  build_token_time_for_job(token_params[:expires_in])
end

.build_token_for_job(token_type, access_token) ⇒ Object



49
50
51
# File 'lib/wso2_toolbox/token_manager/adapters/rails_cached_adapter.rb', line 49

def build_token_for_job(token_type, access_token)
  Setting.token_for_job = "#{token_type} #{access_token}"
end

.build_token_time_for_job(expires_in) ⇒ Object



53
54
55
# File 'lib/wso2_toolbox/token_manager/adapters/rails_cached_adapter.rb', line 53

def build_token_time_for_job(expires_in)
  Setting.token_time_for_job = expires_in.to_i.seconds.from_now
end

.expired_token?Boolean

Returns:

  • (Boolean)


57
58
59
60
# File 'lib/wso2_toolbox/token_manager/adapters/rails_cached_adapter.rb', line 57

def expired_token?
  return true unless Setting.token_time_for_job
  Time.now > Time.parse(Setting.token_time_for_job)
end

.generate_tokenObject



12
13
14
15
16
# File 'lib/wso2_toolbox/token_manager/adapters/rails_cached_adapter.rb', line 12

def generate_token
  new_token if expired_token?
  refresh_token unless active_token?
  store_token(Setting.token_for_job)
end

.new_tokenObject



20
21
22
23
24
# File 'lib/wso2_toolbox/token_manager/adapters/rails_cached_adapter.rb', line 20

def new_token
  token_params =
    Wso2Toolbox::TokenManager::ApiManagerService.create_token
  build_settings(token_params)
end

.refresh_tokenObject



26
27
28
29
30
31
32
33
34
35
# File 'lib/wso2_toolbox/token_manager/adapters/rails_cached_adapter.rb', line 26

def refresh_token
  token_params =
    Wso2Toolbox::TokenManager::ApiManagerService.refresh_token(
      Setting.refresh_token
    )
  Wso2Toolbox::TokenManager::ApiManagerService.revoke_token(
    Setting.access_token
  )
  build_settings(token_params)
end

.store_token(token) ⇒ Object



37
38
39
# File 'lib/wso2_toolbox/token_manager/adapters/rails_cached_adapter.rb', line 37

def store_token(token)
  RequestStore.store[:token] = token
end