securial 0.8.1 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +14 -16
- data/app/controllers/concerns/securial/identity.rb +18 -9
- data/app/controllers/securial/status_controller.rb +2 -0
- data/app/controllers/securial/users_controller.rb +1 -1
- data/app/views/securial/status/show.json.jbuilder +1 -1
- data/bin/securial +5 -54
- data/db/migrate/20250606182648_seed_roles_and_users.rb +69 -0
- data/lib/generators/securial/install/install_generator.rb +2 -2
- data/lib/generators/securial/install/templates/securial_initializer.erb +115 -18
- data/lib/generators/securial/install/views_generator.rb +2 -1
- data/lib/generators/securial/jbuilder/jbuilder_generator.rb +2 -0
- data/lib/generators/securial/scaffold/scaffold_generator.rb +2 -0
- data/lib/securial/auth/auth_encoder.rb +3 -3
- data/lib/securial/auth/session_creator.rb +1 -1
- data/lib/securial/auth/token_generator.rb +13 -13
- data/lib/securial/cli.rb +158 -0
- data/lib/securial/config/configuration.rb +3 -53
- data/lib/securial/config/signature.rb +107 -0
- data/lib/securial/config/validation.rb +59 -16
- data/lib/securial/config.rb +17 -16
- data/lib/securial/engine.rb +2 -0
- data/lib/securial/engine_initializers.rb +21 -2
- data/lib/securial/error/base_securial_error.rb +5 -3
- data/lib/securial/error/config.rb +0 -28
- data/lib/securial/helpers/key_transformer.rb +33 -0
- data/lib/securial/helpers/normalizing_helper.rb +1 -1
- data/lib/securial/helpers/regex_helper.rb +6 -7
- data/lib/securial/helpers/roles_helper.rb +6 -7
- data/lib/securial/helpers.rb +1 -0
- data/lib/securial/logger.rb +7 -8
- data/lib/securial/middleware/response_headers.rb +19 -0
- data/lib/securial/middleware/transform_request_keys.rb +35 -0
- data/lib/securial/middleware/transform_response_keys.rb +47 -0
- data/lib/securial/middleware.rb +3 -0
- data/lib/securial/security/request_rate_limiter.rb +45 -0
- data/lib/securial/security.rb +8 -0
- data/lib/securial/version.rb +1 -1
- data/lib/securial.rb +4 -4
- data/lib/tasks/securial_routes.rake +26 -0
- metadata +47 -19
- data/lib/securial/config/validation/logger_validation.rb +0 -29
- data/lib/securial/config/validation/mailer_validation.rb +0 -24
- data/lib/securial/config/validation/password_validation.rb +0 -91
- data/lib/securial/config/validation/response_validation.rb +0 -37
- data/lib/securial/config/validation/roles_validation.rb +0 -32
- data/lib/securial/config/validation/security_validation.rb +0 -56
- data/lib/securial/config/validation/session_validation.rb +0 -87
@@ -1,87 +0,0 @@
|
|
1
|
-
require "securial/error"
|
2
|
-
|
3
|
-
module Securial
|
4
|
-
module Config
|
5
|
-
module Validation
|
6
|
-
module SessionValidation
|
7
|
-
class << self
|
8
|
-
VALID_SESSION_ENCRYPTION_ALGORITHMS = %i[hs256 hs384 hs512].freeze
|
9
|
-
|
10
|
-
def validate!(securial_config)
|
11
|
-
validate_session_expiry_duration!(securial_config)
|
12
|
-
validate_session_algorithm!(securial_config)
|
13
|
-
validate_session_secret!(securial_config)
|
14
|
-
validate_session_refresh_token!(securial_config)
|
15
|
-
end
|
16
|
-
|
17
|
-
private
|
18
|
-
|
19
|
-
def validate_session_expiry_duration!(securial_config)
|
20
|
-
if securial_config.session_expiration_duration.nil?
|
21
|
-
error_message = "Session expiration duration is not set."
|
22
|
-
Securial.logger.fatal(error_message)
|
23
|
-
raise Securial::Error::Config::SessionValidationError, error_message
|
24
|
-
end
|
25
|
-
if securial_config.session_expiration_duration.class != ActiveSupport::Duration
|
26
|
-
error_message = "Session expiration duration must be an ActiveSupport::Duration."
|
27
|
-
Securial.logger.fatal(error_message)
|
28
|
-
raise Securial::Error::Config::SessionValidationError, error_message
|
29
|
-
end
|
30
|
-
if securial_config.session_expiration_duration <= 0
|
31
|
-
Securial.logger.fatal("Session expiration duration must be greater than 0.")
|
32
|
-
raise Securial::Error::Config::SessionValidationError, "Session expiration duration must be greater than 0."
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
def validate_session_algorithm!(securial_config)
|
37
|
-
if securial_config.session_algorithm.blank?
|
38
|
-
error_message = "Session algorithm is not set."
|
39
|
-
Securial.logger.fatal(error_message)
|
40
|
-
raise Securial::Error::Config::SessionValidationError, error_message
|
41
|
-
end
|
42
|
-
unless securial_config.session_algorithm.is_a?(Symbol)
|
43
|
-
error_message = "Session algorithm must be a Symbol."
|
44
|
-
Securial.logger.fatal(error_message)
|
45
|
-
raise Securial::Error::Config::SessionValidationError, error_message
|
46
|
-
end
|
47
|
-
unless VALID_SESSION_ENCRYPTION_ALGORITHMS.include?(securial_config.session_algorithm)
|
48
|
-
error_message = "Invalid session algorithm. Valid options are: #{VALID_SESSION_ENCRYPTION_ALGORITHMS.map(&:inspect).join(', ')}."
|
49
|
-
Securial.logger.fatal(error_message)
|
50
|
-
raise Securial::Error::Config::SessionValidationError, error_message
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
def validate_session_secret!(securial_config)
|
55
|
-
if securial_config.session_secret.blank?
|
56
|
-
error_message = "Session secret is not set."
|
57
|
-
Securial.logger.fatal(error_message)
|
58
|
-
raise Securial::Error::Config::SessionValidationError, error_message
|
59
|
-
end
|
60
|
-
unless securial_config.session_secret.is_a?(String)
|
61
|
-
error_message = "Session secret must be a String."
|
62
|
-
Securial.logger.fatal(error_message)
|
63
|
-
raise Securial::Error::Config::SessionValidationError, error_message
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
def validate_session_refresh_token!(securial_config)
|
68
|
-
if securial_config.session_refresh_token_expires_in.nil?
|
69
|
-
error_message = "Session refresh token expiration duration is not set."
|
70
|
-
Securial.logger.fatal(error_message)
|
71
|
-
raise Securial::Error::Config::SessionValidationError, error_message
|
72
|
-
end
|
73
|
-
if securial_config.session_refresh_token_expires_in.class != ActiveSupport::Duration
|
74
|
-
error_message = "Session refresh token expiration duration must be an ActiveSupport::Duration."
|
75
|
-
Securial.logger.fatal(error_message)
|
76
|
-
raise Securial::Error::Config::SessionValidationError, error_message
|
77
|
-
end
|
78
|
-
if securial_config.session_refresh_token_expires_in <= 0
|
79
|
-
Securial.logger.fatal("Session refresh token expiration duration must be greater than 0.")
|
80
|
-
raise Securial::Error::Config::SessionValidationError, "Session refresh token expiration duration must be greater than 0."
|
81
|
-
end
|
82
|
-
end
|
83
|
-
end
|
84
|
-
end
|
85
|
-
end
|
86
|
-
end
|
87
|
-
end
|