Class: Legion::Extensions::Identity::Entra::Delegated::Actor::TokenRefresher
- Inherits:
-
Actors::Every
- Object
- Actors::Every
- Legion::Extensions::Identity::Entra::Delegated::Actor::TokenRefresher
- Defined in:
- lib/legion/extensions/identity/entra/delegated/actors/token_refresher.rb
Constant Summary collapse
- DEFAULT_REFRESH_INTERVAL =
900
Instance Method Summary collapse
- #check_subtask? ⇒ Boolean
-
#enabled? ⇒ Boolean
rubocop:disable Legion/Extension/ActorEnabledSideEffects.
- #generate_task? ⇒ Boolean
- #manual ⇒ Object
- #run_now? ⇒ Boolean
- #runner_class ⇒ Object
- #runner_function ⇒ Object
- #time ⇒ Object
- #use_runner? ⇒ Boolean
Instance Method Details
#check_subtask? ⇒ Boolean
15 |
# File 'lib/legion/extensions/identity/entra/delegated/actors/token_refresher.rb', line 15 def check_subtask? = false |
#enabled? ⇒ Boolean
rubocop:disable Legion/Extension/ActorEnabledSideEffects
24 25 26 |
# File 'lib/legion/extensions/identity/entra/delegated/actors/token_refresher.rb', line 24 def enabled? # rubocop:disable Legion/Extension/ActorEnabledSideEffects true end |
#generate_task? ⇒ Boolean
16 |
# File 'lib/legion/extensions/identity/entra/delegated/actors/token_refresher.rb', line 16 def generate_task? = false |
#manual ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/legion/extensions/identity/entra/delegated/actors/token_refresher.rb', line 28 def manual log.debug('Delegated TokenRefresher tick') unless Legion::Extensions::Identity::Entra::Helpers::TokenManager.authenticated?(:delegated) log.debug('No active delegated token, skipping refresh') return end data = Legion::Extensions::Identity::Entra::Helpers::TokenManager.token_data(:delegated, refresh: false) if data && !Legion::Extensions::Identity::Entra::Helpers::TokenManager.expired?(data) log.debug('Delegated token still valid') return end log.info('Delegated token nearing expiry, refreshing') refreshed = Legion::Extensions::Identity::Entra::Helpers::TokenManager.token_data(:delegated, refresh: true) if refreshed && !Legion::Extensions::Identity::Entra::Helpers::TokenManager.expired?(refreshed) Legion::Extensions::Identity::Entra::Client.reset!(pattern: :delegated) log.info('Delegated token refreshed successfully') else log.warn('Delegated token refresh failed, attempting browser re-auth') attempt_browser_reauth end rescue StandardError => e log.error("Delegated TokenRefresher: #{e.}") end |
#run_now? ⇒ Boolean
17 |
# File 'lib/legion/extensions/identity/entra/delegated/actors/token_refresher.rb', line 17 def run_now? = false |
#runner_class ⇒ Object
12 |
# File 'lib/legion/extensions/identity/entra/delegated/actors/token_refresher.rb', line 12 def runner_class = self.class |
#runner_function ⇒ Object
13 |
# File 'lib/legion/extensions/identity/entra/delegated/actors/token_refresher.rb', line 13 def runner_function = 'manual' |
#time ⇒ Object
19 20 21 22 |
# File 'lib/legion/extensions/identity/entra/delegated/actors/token_refresher.rb', line 19 def time Legion::Settings.dig(:identity, :entra, :delegated, :token, :refresh_interval) || DEFAULT_REFRESH_INTERVAL end |
#use_runner? ⇒ Boolean
14 |
# File 'lib/legion/extensions/identity/entra/delegated/actors/token_refresher.rb', line 14 def use_runner? = false |