apicasso 0.6.0 → 0.6.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/app/controllers/apicasso/apidocs_controller.rb +1 -1
- data/app/controllers/apicasso/application_controller.rb +0 -13
- data/app/controllers/apicasso/crud_controller.rb +13 -0
- data/lib/apicasso/version.rb +1 -1
- data/spec/dummy/log/test.log +2050 -0
- data/spec/requests/plurarized/bad_requests_with_plurarize_spec.rb +51 -0
- data/spec/requests/plurarized/requests_with_plurarize_spec.rb +337 -0
- data/spec/requests/{bad_requests_spec.rb → singularized/bad_requests_spec.rb} +0 -0
- data/spec/requests/{requests_spec.rb → singularized/requests_spec.rb} +13 -22
- data/spec/token/token_spec.rb +18 -0
- metadata +12 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9f97d82fa4adce27dc1554104e77c6b6feef8b18278ff7d0b4976ab50b3d41b5
|
4
|
+
data.tar.gz: dc5780ab2577de9344c1c108101184c38f58ac6a1c85213eae437287f9aadc92
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b0fe68e61a194f736b710fc8ed39194520f2e8d515937886f085fa4eb4c50ca96d699001d894db8c2e8df039611b18cec7faa3900040c7b99dec61a250890615
|
7
|
+
data.tar.gz: b8a454334bbf8825563d2f1c81aab99d971b1cab0d840a70dc1c99ac59579342eca245e47182f193446979f3a76e0d9d745dabcb3bd67617bb019ba3c8f5cb47
|
@@ -4,7 +4,7 @@ module Apicasso
|
|
4
4
|
# Controller used to generate an application Swagger JSON, used by
|
5
5
|
# SwaggerUI to generate beautiful API documentation
|
6
6
|
class ApidocsController < Apicasso::ApplicationController
|
7
|
-
skip_before_action :restrict_access
|
7
|
+
skip_before_action :restrict_access, :klasses_allowed, :set_root_resource
|
8
8
|
|
9
9
|
include Swagger::Blocks
|
10
10
|
# Default application settings for documentation generation.
|
@@ -7,9 +7,7 @@ module Apicasso
|
|
7
7
|
class ApplicationController < ActionController::API
|
8
8
|
include ActionController::HttpAuthentication::Token::ControllerMethods
|
9
9
|
prepend_before_action :restrict_access
|
10
|
-
prepend_before_action :klasses_allowed
|
11
10
|
before_action :set_root_resource
|
12
|
-
before_action :bad_request?
|
13
11
|
after_action :register_api_request
|
14
12
|
|
15
13
|
include SqlSecurity
|
@@ -162,11 +160,6 @@ module Apicasso
|
|
162
160
|
uri.to_s
|
163
161
|
end
|
164
162
|
|
165
|
-
# Check for a bad request to be more secure
|
166
|
-
def klasses_allowed
|
167
|
-
raise ActionController::BadRequest.new('Bad hacker, stop be bully or I will tell to your mom!') unless descendants_included?
|
168
|
-
end
|
169
|
-
|
170
163
|
# Check if it's a descendant model allowed
|
171
164
|
def descendants_included?
|
172
165
|
DESCENDANTS_UNDERSCORED.include?(param_attribute.to_s.underscore)
|
@@ -188,11 +181,5 @@ module Apicasso
|
|
188
181
|
authorize! opts[:action], opts[:resource] if opts[:resource].present?
|
189
182
|
authorize! opts[:action], opts[:object] if opts[:object].present?
|
190
183
|
end
|
191
|
-
|
192
|
-
# Check for SQL injection before requests and
|
193
|
-
# raise a exception when find
|
194
|
-
def bad_request?
|
195
|
-
raise ActionController::BadRequest.new('Bad hacker, stop be bully or I will tell to your mom!') unless sql_injection(resource)
|
196
|
-
end
|
197
184
|
end
|
198
185
|
end
|
@@ -3,6 +3,8 @@
|
|
3
3
|
module Apicasso
|
4
4
|
# Controller to consume read-only data to be used on client's frontend
|
5
5
|
class CrudController < Apicasso::ApplicationController
|
6
|
+
prepend_before_action :klasses_allowed
|
7
|
+
before_action :bad_request?
|
6
8
|
before_action :set_object, except: %i[index create schema]
|
7
9
|
before_action :set_nested_resource, only: %i[nested_index]
|
8
10
|
before_action :set_records, only: %i[index]
|
@@ -224,5 +226,16 @@ module Apicasso
|
|
224
226
|
end
|
225
227
|
end.compact
|
226
228
|
end
|
229
|
+
|
230
|
+
# Check for SQL injection before requests and
|
231
|
+
# raise a exception when find
|
232
|
+
def bad_request?
|
233
|
+
raise ActionController::BadRequest.new('Bad hacker, stop be bully or I will tell to your mom!') unless sql_injection(resource)
|
234
|
+
end
|
235
|
+
|
236
|
+
# Check for a bad request to be more secure
|
237
|
+
def klasses_allowed
|
238
|
+
raise ActionController::BadRequest.new('Bad hacker, stop be bully or I will tell to your mom!') unless descendants_included?
|
239
|
+
end
|
227
240
|
end
|
228
241
|
end
|
data/lib/apicasso/version.rb
CHANGED