class Checkpoint::Agent::Token

An Agent::Token is an identifier object for an Agent. It includes a type and an identifier. A {Grant} can be created for a Token. Concrete actors are resolved into a number of agents, and those agents' tokens will be checked for matching grants.

Attributes

agent_id[R]
agent_type[R]
id[R]
type[R]

Public Class Methods

new(type, id) click to toggle source

Create a new Agent Token representing an actor in an application.

@param type [String] the application-determined type of this agent. This

will commonly be 'user' or 'group', but may be anything that identifies
a type of authentication attribute, such as 'account-type'. The type
will be converted to a String if something else is supplied.

@param id [String] the application-resolvable identifier for this agent.

This will commonly be username or group ID, but may be any value of an
attribute of this type used to qualify an actor (user). The id
will be converted to a String if something else is supplied.
# File lib/checkpoint/agent/token.rb, line 22
def initialize(type, id)
  @type = type.to_s
  @id = id.to_s
end

Public Instance Methods

==(other)
Alias for: eql?
eql?(other) click to toggle source

Compare with another Agent for equality. Consider them to represent the same resource if `other` is an Agent, has the same type, and same id.

# File lib/checkpoint/agent/token.rb, line 44
def eql?(other)
  other.is_a?(Token) && type == other.type && id == other.id
end
Also aliased as: ==
hash() click to toggle source

@return [Integer] hash code based on to_s

# File lib/checkpoint/agent/token.rb, line 49
def hash
  to_s.hash
end
inspect()
Alias for: uri
to_s() click to toggle source

@return [String] a token string suitable for granting or matching grants for this agent

# File lib/checkpoint/agent/token.rb, line 38
def to_s
  "#{type}:#{id}"
end
token() click to toggle source

@return [Token] self; for convenience of taking an Agent or token

# File lib/checkpoint/agent/token.rb, line 33
def token
  self
end
uri() click to toggle source

@return [String] a URI for this agent, including its type and id

# File lib/checkpoint/agent/token.rb, line 28
def uri
  "agent://#{type}/#{id}"
end
Also aliased as: inspect