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 =
[: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.example.com"
  c.secret = "m4GHRWxvXiL3ZSR8adShpqNWXmepkqeyUqRfpB8F"
end


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

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

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

Raises an UnauthorizedAccess exception

Raises:



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

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
# 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


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

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