Module: HubSsoLib

Defined in:
lib/hub_sso_lib.rb

Overview

Module: HubSsoLib # (C) Hipposoft 2006-2025 # # Purpose: Cross-application same domain single sign-on support. # # Author: A.D.Hodgkinson # # History: 20-Oct-2006 (ADH): First version of stand-alone library, # split from Hub application. # 08-Dec-2006 (ADH): DRB URI, path prefix and random file # path come from environment variables. # 09-Mar-2011 (ADH): Updated for Hub on Rails 2.3.11 along # with several important bug fixes. # 01-May-2019 (ADH): Updated for Ruby 2.5.x. # 25-Mar-2025 (ADH): Major 2025 overhaul for ROOL site. #

Defined Under Namespace

Modules: Core, Server Classes: Permissions, Roles, Serialiser, Session, SessionBase, SessionCopy, SessionFactory, Trust, User

Constant Summary collapse

HUB_CONNECTION_URI =

DRb connections.

ENV['HUB_CONNECTION_URI'      ] || 'drbunix:' + File.join(ENV['HOME'] || '/', '/.hub_drb')
HUB_TRUST_CONNECTION_URI =
ENV['HUB_TRUST_CONNECTION_URI'] || 'drbunix:' + File.join(ENV['HOME'] || '/', '/.hub_trust_drb')
HUB_COMMAND_REGISTRY =

External application command registry for on-user-change events.

ENV['HUB_COMMAND_REGISTRY'] || File.join(ENV['HOME'] || '/', '/.hub_cmd_reg')
HUB_SESSION_ARCHIVE =

DRb session on-shutdown dumped cache/archive.

ENV['HUB_SESSION_ARCHIVE'] || File.join( ENV['HOME'] || '/', '/.hub_ses_arc')
HUB_PATH_PREFIX =

Location of Hub application root.

(ENV['HUB_PATH_PREFIX'] || '').sub(/(\/)+$/, '')
HUB_IDLE_TIME_LIMIT =

Time limit, in seconds, for the account inactivity timeout. If a user performs no Hub actions during this time they will be automatically logged out upon their next action, with a Flash message set to explain why.

ENV['HUB_IDLE_TIME_LIMIT']&.to_i || 4 * 60 * 60
HUB_ARCHIVE_TIME_LIMIT =

Archive time for very old sessions that are kicked out foricbly.

[ HUB_IDLE_TIME_LIMIT * 3, 172_800 ].max()
HUB_SESSION_ENUMERATION_KEY_MAX =

If you use live session enumeration, this is the hard-coded limit for the number of session keys that can be returned. If there are more active sessions that this, bulk session enumeration is not permitted.

ENV['HUB_SESSION_ENUMERATION_KEY_MAX']&.to_i || 2000
:hubapp_shared_id
:hubapp_shared_id_alive
'Y'
HUB_BYPASS_SSL =

Bypass SSL, for testing purposes? Rails 'production' mode will insist on SSL otherwise. Development & test environments do not, so do not need this variable setting.

( ENV['HUB_BYPASS_SSL'] == "true" )
HUB_MUTEX =

Thread safety.

Mutex.new