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/permission_checker.rb,
lib/jwt_auth_cognito/authorization_concern.rb,
lib/jwt_auth_cognito/token_blacklist_service.rb,
lib/generators/jwt_auth_cognito/install_generator.rb

Defined Under Namespace

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

Constant Summary collapse

VERSION =
'1.0.0-beta.11'

Class Method Summary collapse

Class Method Details

.configurationObject



35
36
37
# File 'lib/jwt_auth_cognito.rb', line 35

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

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

Configure the gem

Yields:



31
32
33
# File 'lib/jwt_auth_cognito.rb', line 31

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



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
70
71
# File 'lib/jwt_auth_cognito.rb', line 44

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



39
40
41
# File 'lib/jwt_auth_cognito.rb', line 39

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