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
Public Class Methods
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
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
@return [Integer] hash code based on to_s
# File lib/checkpoint/agent/token.rb, line 49 def hash to_s.hash end
@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
@return [Token] self; for convenience of taking an Agent
or token
# File lib/checkpoint/agent/token.rb, line 33 def token self end
@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