class TrivialSso::Login
Attributes
data[RW]
default_expire[R]
expire_time[RW]
mode[R]
secret[RW]
struct[RW]
unwrap[R]
wrap[R]
Public Class Methods
new(opts = {})
click to toggle source
# File lib/trivial_sso/login.rb, line 7 def initialize(opts = {}) opts[:expire_time] = default_expire unless opts[:expire_time] opts[:secret] = default_secret unless opts[:secret] opts.each {|k,v| send("#{k}=".to_sym, v) if available_opts.include?(k.to_sym)} end
Public Instance Methods
data=(value)
click to toggle source
# File lib/trivial_sso/login.rb, line 17 def data=(value) if value.is_a?(String) @mode, @data = :unwrap, value elsif value.is_a?(Hash) @mode, @data = :wrap, OpenStruct.new(value) else raise Error::BadData::Given end end
expire_time=(value)
click to toggle source
# File lib/trivial_sso/login.rb, line 13 def expire_time=(value) @expire_time = time_or_default(value) if time_value_good?(value) end
sso_secret()
click to toggle source
# File lib/trivial_sso/login.rb, line 40 def sso_secret TrivialSso::Secret.new(secret).sso_secret end
Private Instance Methods
available_opts()
click to toggle source
# File lib/trivial_sso/login.rb, line 85 def available_opts [:data, :secret, :expire_time] end
check_mode_set()
click to toggle source
# File lib/trivial_sso/login.rb, line 68 def check_mode_set raise Error::BadData::Given if mode.nil? || mode.empty? end
default_secret()
click to toggle source
# File lib/trivial_sso/login.rb, line 50 def default_secret get_defined_sso_secret || SecureRandom.hex(64) end
get_defined_sso_secret()
click to toggle source
# File lib/trivial_sso/login.rb, line 54 def get_defined_sso_secret if rails_sso_secret_exists? Rails.configuration.sso_secret elsif defined? Rails raise Error::MissingRailsConfig else false end end
rails_sso_secret_exists?()
click to toggle source
# File lib/trivial_sso/login.rb, line 64 def rails_sso_secret_exists? defined?(Rails) && Rails.configuration.sso_secret end
time_or_default(value)
click to toggle source
# File lib/trivial_sso/login.rb, line 80 def time_or_default(value) value.to_i.nonzero? ? value.to_i : default_expire end
time_value_good?(value)
click to toggle source
# File lib/trivial_sso/login.rb, line 72 def time_value_good?(value) if (value.is_a?(Integer) || value.is_a?(String)) && value.to_s.length == 10 true else raise Error::BadExpireTime end end