jets 2.2.0 → 2.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/lib/jets/authorizer/dsl.rb +2 -1
- data/lib/jets/authorizer/helpers/iam_helper.rb +4 -7
- data/lib/jets/cfn/builders/controller_builder.rb +4 -0
- data/lib/jets/controller/authorization.rb +15 -5
- data/lib/jets/resource/api_gateway/method/authorization.rb +1 -1
- data/lib/jets/router/route.rb +1 -1
- data/lib/jets/router/route/{authorization.rb → authorizer.rb} +23 -18
- data/lib/jets/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6becd540bc99766696d49280636867ca4183ab2dc6a9cadec90c9837acd06352
|
4
|
+
data.tar.gz: '0918860cc1c3429635f1d3cba3db58301d0090e55c1382049d23d45f2763dfa2'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8fd318bf3aaa6039226e32a93703ebe5ad89e66b1c739378c525a160a7ae0f902b1709ea421b3849472243f5d3fe3f00ac35f91d7102accf856ceda28f6e3ae9
|
7
|
+
data.tar.gz: b7c0d69d5230806fbd630ac857abb8dd091f6f1dee8a3708f7f1485c57abcd3c063ae2250843a6a91503f23980a19ec8bbb7a388ade6168ec3ab5ac2547a98f7
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,9 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
This project *loosely tries* to adhere to [Semantic Versioning](http://semver.org/).
|
5
5
|
|
6
|
+
## [2.2.1]
|
7
|
+
- #369 clean up authorizers and bug fixes
|
8
|
+
|
6
9
|
## [2.2.0]
|
7
10
|
- #368 API Gateway Authorizer Concept Support
|
8
11
|
|
data/lib/jets/authorizer/dsl.rb
CHANGED
@@ -33,7 +33,8 @@ module Jets::Authorizer
|
|
33
33
|
# function associated with the cognito authorizer.
|
34
34
|
def cognito_authorizer(props={})
|
35
35
|
resources = [props]
|
36
|
-
|
36
|
+
# Authorizer name can have dashes, but "method" name should be underscored for correct logical id.
|
37
|
+
meth = props[:name].gsub('-','_')
|
37
38
|
resource = Jets::Resource::ApiGateway::Authorizer.new(props)
|
38
39
|
|
39
40
|
# Mimic task to grab base_replacements, namely namespace.
|
@@ -31,17 +31,14 @@ module Jets::Authorizer::Helpers
|
|
31
31
|
props[:usage_identifier_key] = usage_identifier_key if usage_identifier_key
|
32
32
|
end
|
33
33
|
|
34
|
-
props
|
35
|
-
#
|
36
|
-
props
|
37
|
-
if props['context']
|
38
|
-
props['context'].transform_keys! { |k| pascalize(k) }
|
39
|
-
end
|
34
|
+
props.transform_keys! { |k| pascalize(k) } # Only top-level keys are pascalized
|
35
|
+
# policyDocument is camelized, everything else is left alone
|
36
|
+
props["policyDocument"] = Jets::Camelizer.transform(props["policyDocument"])
|
40
37
|
props
|
41
38
|
end
|
42
39
|
|
43
40
|
def pascalize(value)
|
44
|
-
new_value = value.camelize
|
41
|
+
new_value = value.to_s.camelize
|
45
42
|
first_char = new_value[0..0].downcase
|
46
43
|
new_value[0] = first_char
|
47
44
|
new_value
|
@@ -24,6 +24,10 @@ module Jets::Cfn::Builders
|
|
24
24
|
add_parameter(route.authorizer_id, description: route.authorizer_metadata)
|
25
25
|
end
|
26
26
|
end
|
27
|
+
|
28
|
+
if @app_class.authorizer
|
29
|
+
add_parameter(@app_class.authorizer_id, description: @app_class.authorizer_metadata)
|
30
|
+
end
|
27
31
|
end
|
28
32
|
|
29
33
|
def add_routes
|
@@ -31,24 +31,34 @@ class Jets::Controller
|
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
34
|
-
def
|
34
|
+
def authorizer_metadata
|
35
|
+
Jets::Router::Route::Authorizer.metadata(auth_to)
|
36
|
+
end
|
37
|
+
|
38
|
+
# Used to add to parameter to controller templates
|
39
|
+
def authorizer_id
|
40
|
+
Jets::Router::Route::Authorizer.logical_id(auth_to)
|
41
|
+
end
|
42
|
+
|
43
|
+
# Used to add to the API::Gateway Method selectively
|
44
|
+
def authorizer_logical_id_for(action_name)
|
35
45
|
return unless auth_to
|
36
46
|
|
37
47
|
only = auth_options[:only].map(&:to_s) if auth_options && auth_options[:only]
|
38
48
|
except = auth_options[:except].map(&:to_s) if auth_options && auth_options[:except]
|
39
49
|
|
40
50
|
if except and !except.include?(action_name)
|
41
|
-
logical_id = Jets::Router::Route.
|
51
|
+
logical_id = Jets::Router::Route::Authorizer.logical_id(auth_to)
|
42
52
|
end
|
43
53
|
|
44
54
|
# only overrides except
|
45
55
|
if only and only.include?(action_name)
|
46
|
-
logical_id = Jets::Router::Route.
|
56
|
+
logical_id = Jets::Router::Route::Authorizer.logical_id(auth_to)
|
47
57
|
end
|
48
58
|
|
49
59
|
# if both only and except are not set then always set the logical_id
|
50
60
|
if !only && !except
|
51
|
-
logical_id = Jets::Router::Route.
|
61
|
+
logical_id = Jets::Router::Route::Authorizer.logical_id(auth_to)
|
52
62
|
end
|
53
63
|
|
54
64
|
logical_id
|
@@ -56,7 +66,7 @@ class Jets::Controller
|
|
56
66
|
|
57
67
|
# Autoamtically sets authorization_type for the specific route based on the controller authorizer
|
58
68
|
def infer_authorization_type_for(action_name)
|
59
|
-
return unless
|
69
|
+
return unless authorizer_logical_id_for(action_name)
|
60
70
|
Jets::Authorizer::Base.authorization_type(auth_to)
|
61
71
|
end
|
62
72
|
|
@@ -5,7 +5,7 @@ class Jets::Resource::ApiGateway::Method
|
|
5
5
|
if @route.authorizer
|
6
6
|
logical_id = @route.authorizer_id
|
7
7
|
elsif controller_klass.authorizer
|
8
|
-
logical_id = controller_klass.
|
8
|
+
logical_id = controller_klass.authorizer_logical_id_for(@route.action_name)
|
9
9
|
end
|
10
10
|
|
11
11
|
"!Ref #{logical_id}" if logical_id
|
data/lib/jets/router/route.rb
CHANGED
@@ -1,30 +1,15 @@
|
|
1
1
|
class Jets::Router::Route
|
2
|
-
module
|
3
|
-
extend ActiveSupport::Concern
|
4
|
-
|
5
|
-
class_methods do
|
6
|
-
# Use by both Route and Controller
|
7
|
-
def authorizer_logical_id(authorizer, prefix_class: true)
|
8
|
-
klass, meth = authorizer.split("#")
|
9
|
-
words = [meth, "authorizer"]
|
10
|
-
words.unshift(klass) if prefix_class
|
11
|
-
words.join('_').camelize # logical_id
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
2
|
+
module Authorizer
|
15
3
|
# IE: main#protect => MainProtectAuthorizer
|
16
4
|
def authorizer_id(prefix_class: true)
|
17
5
|
return unless authorizer
|
18
|
-
|
6
|
+
logical_id(authorizer, prefix_class: prefix_class)
|
19
7
|
end
|
20
8
|
|
21
9
|
# Metadata about the authorizer class that can be used later. Stored in the Authorizer template parameters.
|
22
10
|
# In app_class.rb `def controller_params` it is used to build the input parameters for controller templates.
|
23
11
|
def authorizer_metadata
|
24
|
-
|
25
|
-
authorizer_class = "#{klass}_authorizer".camelize
|
26
|
-
logical_id = authorizer_id(prefix_class: false)
|
27
|
-
"#{authorizer_class}.#{logical_id}"
|
12
|
+
metadata(authorizer)
|
28
13
|
end
|
29
14
|
|
30
15
|
def authorizer
|
@@ -39,10 +24,30 @@ class Jets::Router::Route
|
|
39
24
|
@options[:api_key_required]
|
40
25
|
end
|
41
26
|
|
27
|
+
module ModuleMethods
|
28
|
+
def logical_id(authorizer, prefix_class: true)
|
29
|
+
klass, meth = authorizer.split("#")
|
30
|
+
words = [meth, "authorizer"]
|
31
|
+
words.unshift(klass) if prefix_class
|
32
|
+
words.join('_').camelize # logical_id
|
33
|
+
end
|
34
|
+
|
35
|
+
def metadata(authorizer)
|
36
|
+
klass = authorizer.split("#").first
|
37
|
+
authorizer_class = "#{klass}_authorizer".camelize
|
38
|
+
logical_id = logical_id(authorizer, prefix_class: false)
|
39
|
+
# IE: MainAuthorizer.ProtectAuthorizer
|
40
|
+
"#{authorizer_class}.#{logical_id}"
|
41
|
+
end
|
42
|
+
end
|
43
|
+
include ModuleMethods # so available as instance methods
|
44
|
+
extend ModuleMethods # so also available as module method. IE: Jets::Router::Route::Authorizer.metadata(auth_to)
|
45
|
+
|
42
46
|
private
|
43
47
|
def inferred_authorization_type
|
44
48
|
return unless authorizer
|
45
49
|
Jets::Authorizer::Base.authorization_type(authorizer)
|
46
50
|
end
|
51
|
+
|
47
52
|
end
|
48
53
|
end
|
data/lib/jets/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tung Nguyen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-09-
|
11
|
+
date: 2019-09-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: actionmailer
|
@@ -940,7 +940,7 @@ files:
|
|
940
940
|
- lib/jets/router/resources/filter.rb
|
941
941
|
- lib/jets/router/resources/options.rb
|
942
942
|
- lib/jets/router/route.rb
|
943
|
-
- lib/jets/router/route/
|
943
|
+
- lib/jets/router/route/authorizer.rb
|
944
944
|
- lib/jets/router/scope.rb
|
945
945
|
- lib/jets/router/util.rb
|
946
946
|
- lib/jets/rule/base.rb
|