Module: Bsm::Sso::Client

Defined in:
lib/bsm/sso/client.rb,
lib/bsm/sso/client/test_helpers.rb

Defined Under Namespace

Modules: Ability, AuthorizedController, Cached, Strategies, TestHelpers, UrlHelpers, UserMethods Classes: AbstractResource, FailureApp, Railtie, User

Constant Summary collapse

UnauthorizedAccess =
Class.new(ActionController::ActionControllerError)
@@secret =
nil
@@token_timeout =
60.seconds
@@expire_after =
2.hours
@@user_class =
nil
@@warden_configuration =
nil
[:html, :all, :js, nil].to_set
@@api_formats =
%i[xml json].to_set
@@cache_store =
ActiveSupport::Cache::NullStore.new namespace: "bsm:sso:client:#{Rails.env}"

Class Method Summary collapse

Class Method Details

.configure(&block) ⇒ Object

Configure the SSO. Example:

# config/initializers/sso.rb
Bsm::Sso::Client.configure do |c|
  c.site = "https://sso.test.host"
  c.secret = "m4GHRWxvXiL3ZSR8adShpqNWXmepkqeyUqRfpB8F"
end


76
77
78
# File 'lib/bsm/sso/client.rb', line 76

def configure(&block)
  tap(&block)
end

.forbidden!(request, message = nil) ⇒ Object

Raises an UnauthorizedAccess exception

Raises:



93
94
95
96
# File 'lib/bsm/sso/client.rb', line 93

def forbidden!(request, message=nil)
  message ||= "You are not permitted to access the resource in #{request.path}"
  raise UnauthorizedAccess, message
end

.user_classObject



54
55
56
57
58
59
60
# File 'lib/bsm/sso/client.rb', line 54

def user_class
  if @@user_class.respond_to?(:constantize)
    @@user_class.constantize
  else
    @@user_class || Bsm::Sso::Client::User
  end
end

.verifierObject

Default message verifier



63
64
65
66
67
# File 'lib/bsm/sso/client.rb', line 63

def verifier
  raise "Please configure a secret! Example: Bsm::Sso::Client.secret = '...'" unless secret.present?

  @verifier ||= ActiveSupport::MessageVerifier.new(secret)
end

.warden(&block) ⇒ Object

Warden configuration. Example:

# config/initializers/sso.rb
Bsm::Sso::Client.configure do |c|
  c.warden do |manager|
    manager.default_strategies << :my_strategy
  end
end


88
89
90
# File 'lib/bsm/sso/client.rb', line 88

def warden(&block)
  @@warden_configuration = block
end