Module: JwtAuthCognito

Defined in:
lib/jwt_auth_cognito.rb,
lib/jwt_auth_cognito/railtie.rb,
lib/jwt_auth_cognito/version.rb,
lib/jwt_auth_cognito/error_utils.rb,
lib/jwt_auth_cognito/ssm_service.rb,
lib/jwt_auth_cognito/jwks_service.rb,
lib/jwt_auth_cognito/configuration.rb,
lib/jwt_auth_cognito/jwt_validator.rb,
lib/jwt_auth_cognito/redis_service.rb,
lib/jwt_auth_cognito/api_key_validator.rb,
lib/jwt_auth_cognito/user_data_service.rb,
lib/jwt_auth_cognito/token_blacklist_service.rb,
lib/generators/jwt_auth_cognito/install_generator.rb

Defined Under Namespace

Modules: ErrorUtils, Generators Classes: ApiKeyValidator, BlacklistError, Configuration, ConfigurationError, Error, JWKSError, JwksService, JwtValidator, Railtie, RedisConnectionError, RedisService, SSMService, TokenBlacklistService, TokenExpiredError, TokenFormatError, TokenNotActiveError, TokenRevokedError, UserDataService, ValidationError

Constant Summary collapse

VERSION =
'0.3.0'

Class Method Summary collapse

Class Method Details

.configurationObject



33
34
35
# File 'lib/jwt_auth_cognito.rb', line 33

def self.configuration
  @configuration ||= Configuration.new
end

.configure {|configuration| ... } ⇒ Object

Configure the gem

Yields:



29
30
31
# File 'lib/jwt_auth_cognito.rb', line 29

def self.configure
  yield(configuration)
end

.create_cognito_validator(region:, user_pool_id:, client_id: nil, client_secret: nil, redis_config: {}, enable_api_key_validation: false, enable_user_data_retrieval: false) ⇒ Object

Convenience factory method to create a Cognito validator



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/jwt_auth_cognito.rb', line 42

def self.create_cognito_validator(region:, user_pool_id:, client_id: nil, client_secret: nil, redis_config: {},
                                  enable_api_key_validation: false, enable_user_data_retrieval: false)
  old_config = configuration.dup

  configure do |config|
    config.cognito_region = region
    config.cognito_user_pool_id = user_pool_id
    config.cognito_client_id = client_id if client_id
    config.cognito_client_secret = client_secret if client_secret
    config.enable_api_key_validation = enable_api_key_validation
    config.enable_user_data_retrieval = enable_user_data_retrieval

    # Apply Redis configuration
    config.redis_host = redis_config[:host] if redis_config[:host]
    config.redis_port = redis_config[:port] if redis_config[:port]
    config.redis_password = redis_config[:password] if redis_config[:password]
    config.redis_ssl = redis_config[:tls] if redis_config.key?(:tls)
    config.redis_ca_cert_path = redis_config[:ca_cert_path] if redis_config[:ca_cert_path]
    config.redis_ca_cert_name = redis_config[:ca_cert_name] if redis_config[:ca_cert_name]
  end

  validator = JwtValidator.new

  # Restore original configuration
  @configuration = old_config

  validator
end

.reset_configuration!Object



37
38
39
# File 'lib/jwt_auth_cognito.rb', line 37

def self.reset_configuration!
  @configuration = Configuration.new
end