Class: VertxAuthCommon::ChainAuth

Inherits:
AuthProvider show all
Defined in:
/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-auth-common/chain_auth.rb

Overview

Chain several auth providers as if they were one. This is useful for cases where one want to authenticate across several providers, for example, database and fallback to passwd file.

Constant Summary

@@j_api_type =
Object.new

Class Method Summary (collapse)

Instance Method Summary (collapse)

Class Method Details

+ (Boolean) accept?(obj)

Returns:

  • (Boolean)


20
21
22
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-auth-common/chain_auth.rb', line 20

def @@j_api_type.accept?(obj)
  obj.class == ChainAuth
end

+ (::VertxAuthCommon::ChainAuth) create

Create a Chainable Auth Provider auth provider

Returns:

Raises:

  • (ArgumentError)


61
62
63
64
65
66
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-auth-common/chain_auth.rb', line 61

def self.create
  if !block_given?
    return ::Vertx::Util::Utils.safe_create(Java::IoVertxExtAuth::ChainAuth.java_method(:create, []).call(),::VertxAuthCommon::ChainAuth)
  end
  raise ArgumentError, "Invalid arguments when calling create()"
end

+ (Object) j_api_type



29
30
31
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-auth-common/chain_auth.rb', line 29

def self.j_api_type
  @@j_api_type
end

+ (Object) j_class



32
33
34
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-auth-common/chain_auth.rb', line 32

def self.j_class
  Java::IoVertxExtAuth::ChainAuth.java_class
end

+ (Object) unwrap(obj)



26
27
28
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-auth-common/chain_auth.rb', line 26

def @@j_api_type.unwrap(obj)
  obj.j_del
end

+ (Object) wrap(obj)



23
24
25
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-auth-common/chain_auth.rb', line 23

def @@j_api_type.wrap(obj)
  ChainAuth.new(obj)
end

Instance Method Details

- (self) append(other = nil)

Appends a auth provider to the chain.

Parameters:

Returns:

  • (self)

Raises:

  • (ArgumentError)


70
71
72
73
74
75
76
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-auth-common/chain_auth.rb', line 70

def append(other=nil)
  if other.class.method_defined?(:j_del) && !block_given?
    @j_del.java_method(:append, [Java::IoVertxExtAuth::AuthProvider.java_class]).call(other.j_del)
    return self
  end
  raise ArgumentError, "Invalid arguments when calling append(#{other})"
end

- (void) authenticate(authInfo = nil) { ... }

This method returns an undefined value.

Authenticate a user.

The first argument is a JSON object containing information for authenticating the user. What this actually contains depends on the specific implementation. In the case of a simple username/password based authentication it is likely to contain a JSON object with the following structure:


   {
     "username": "tim",
     "password": "mypassword"
   }
For other types of authentication it contain different information - for example a JWT token or OAuth bearer token.

If the user is successfully authenticated a User object is passed to the handler in an AsyncResult. The user object can then be used for authorisation.

Parameters:

  • authInfo (Hash{String => Object}) (defaults to: nil)
    The auth information

Yields:

  • The result handler

Raises:

  • (ArgumentError)


53
54
55
56
57
58
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-auth-common/chain_auth.rb', line 53

def authenticate(authInfo=nil)
  if authInfo.class == Hash && block_given?
    return @j_del.java_method(:authenticate, [Java::IoVertxCoreJson::JsonObject.java_class,Java::IoVertxCore::Handler.java_class]).call(::Vertx::Util::Utils.to_json_object(authInfo),(Proc.new { |ar| yield(ar.failed ? ar.cause : nil, ar.succeeded ? ::Vertx::Util::Utils.safe_create(ar.result,::VertxAuthCommon::User) : nil) }))
  end
  raise ArgumentError, "Invalid arguments when calling authenticate(#{authInfo})"
end

- (void) clear

This method returns an undefined value.

Clears the chain.

Raises:

  • (ArgumentError)


88
89
90
91
92
93
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-auth-common/chain_auth.rb', line 88

def clear
  if !block_given?
    return @j_del.java_method(:clear, []).call()
  end
  raise ArgumentError, "Invalid arguments when calling clear()"
end

- (true, false) remove?(other = nil)

Removes a provider from the chain.

Parameters:

Returns:

  • (true, false)
    true if provider was removed, false if non existent in the chain.

Raises:

  • (ArgumentError)


80
81
82
83
84
85
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-auth-common/chain_auth.rb', line 80

def remove?(other=nil)
  if other.class.method_defined?(:j_del) && !block_given?
    return @j_del.java_method(:remove, [Java::IoVertxExtAuth::AuthProvider.java_class]).call(other.j_del)
  end
  raise ArgumentError, "Invalid arguments when calling remove?(#{other})"
end