Class: SkipEmbedded::OpFixation

Inherits:
Object
  • Object
show all
Defined in:
lib/skip_embedded/op_fixation.rb

Constant Summary collapse

@@skip_url =
InitialSettings['skip_collaboration']['skip_url']

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*allowed) ⇒ OpFixation

Returns a new instance of OpFixation.



21
22
23
# File 'lib/skip_embedded/op_fixation.rb', line 21

def initialize(*allowed)
  @available_servers = allowed
end

Class Method Details

.accept?(claimed_url) ⇒ Boolean

Returns:

  • (Boolean)


13
14
15
# File 'lib/skip_embedded/op_fixation.rb', line 13

def self.accept?(claimed_url)
  new(@@skip_url).accept?(claimed_url)
end

.skip_logout_urlObject



17
18
19
# File 'lib/skip_embedded/op_fixation.rb', line 17

def self.skip_logout_url
  URI.join(skip_url, "logout").to_s if skip_url
end

.sso_enabled?Boolean

Returns:

  • (Boolean)


9
10
11
# File 'lib/skip_embedded/op_fixation.rb', line 9

def self.sso_enabled?
  !!@@skip_url
end

Instance Method Details

#accept?(claimed_url) ⇒ Boolean

Returns:

  • (Boolean)


25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/skip_embedded/op_fixation.rb', line 25

def accept?(claimed_url)
  begin
    _, services = OpenID.discover claimed_url
    if self.class.sso_enabled?
      services.any?{|s| @available_servers.include?(s.server_url) }
    else
      true
    end
  rescue OpenID::DiscoveryFailure => why
    ::OpenID::Util.logger.error "FixedOp discovery failed: #{why.message}"
    false
  end
end