better_record 0.19.4 → 0.19.6
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 26cad53cfde14b9a15655f5b2c641477041184411718a347eb8bb212a2d6a4c0
|
4
|
+
data.tar.gz: 4c3edf06a7d9b0203d270bebdb7ae174a225cf512f426055b1edf49d8a132792
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eb090203431b0bdfb99ca5ed000a04439688556b44352452e50fa125b8b1c18a4c262428cb88f79f72d9686bd80883c5d048fbb7aadf1e85741dc3db9adb10a6
|
7
|
+
data.tar.gz: faa6084402e2064fe7b8ae3e53657184e194653751a1aa21df5adc7b07840dfb66ed2147d7fed6cc01bc2f033e6df8d07d647ce463a2bbc263ed3454f79c79ef
|
data/lib/better_record.rb
CHANGED
@@ -77,10 +77,10 @@ module BetterRecord
|
|
77
77
|
self.certificate_session_user_method = (ENV.fetch('BR_CERTIFICATE_SESSION_USER_METHOD') { :user }).to_sym
|
78
78
|
self.certificate_header = (ENV.fetch('BR_CERTIFICATE_HEADER') { :HTTP_X_SSL_CERT }).to_sym
|
79
79
|
self.certificate_is_hashed = Boolean.strict_parse(ENV.fetch('BR_CERTIFICATE_IS_HASHED') { false })
|
80
|
-
self.certificate_cleaning_method = (ENV.fetch('BR_CERTIFICATE_CLEANING_METHOD') { :clean_certificate })
|
80
|
+
self.certificate_cleaning_method = (ENV.fetch('BR_CERTIFICATE_CLEANING_METHOD') { :clean_certificate })&.to_sym
|
81
81
|
self.certificate_cleaning_send_as_arg = Boolean.strict_parse(ENV.fetch('BR_CERTIFICATE_CLEANING_AS_ARG') { false })
|
82
|
-
self.token_decryption_method = (ENV.fetch('BR_TOKEN_DECRYPTION_METHOD') {
|
83
|
-
self.token_encryption_method = (ENV.fetch('BR_TOKEN_ENCRYPTION_METHOD') {
|
82
|
+
self.token_decryption_method = (ENV.fetch('BR_TOKEN_DECRYPTION_METHOD') { false })&.to_sym
|
83
|
+
self.token_encryption_method = (ENV.fetch('BR_TOKEN_ENCRYPTION_METHOD') { false })&.to_sym
|
84
84
|
self.token_send_as_arg = Boolean.strict_parse(ENV.fetch('BR_TOKEN_AS_ARG') { false })
|
85
85
|
end
|
86
86
|
|
data/lib/better_record/jwt.rb
CHANGED
@@ -129,13 +129,15 @@ module BetterRecord
|
|
129
129
|
end
|
130
130
|
|
131
131
|
def br_get_clean_cert(certificate)
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
certificate_cleaning_method
|
137
|
-
|
138
|
-
|
132
|
+
ensure_is_real_value(
|
133
|
+
certificate_cleaning_send_as_arg ?
|
134
|
+
self.__send__(certificate_cleaning_method, certificate) :
|
135
|
+
(
|
136
|
+
certificate_cleaning_method.present? ?
|
137
|
+
certificate.__send__(certificate_cleaning_method) :
|
138
|
+
certificate
|
139
|
+
).presence
|
140
|
+
)
|
139
141
|
end
|
140
142
|
|
141
143
|
def current_user
|
@@ -144,6 +146,8 @@ module BetterRecord
|
|
144
146
|
|
145
147
|
def current_user_session_data
|
146
148
|
logged_in? ? JWT.decode(current_token).deep_symbolize_keys : {}
|
149
|
+
rescue
|
150
|
+
{}
|
147
151
|
end
|
148
152
|
|
149
153
|
def has_correct_origin?
|
@@ -174,7 +178,7 @@ module BetterRecord
|
|
174
178
|
def current_token
|
175
179
|
if use_bearer_token
|
176
180
|
@current_token ||= authenticate_with_http_token do |token, **options|
|
177
|
-
decrypt_token(token, options)
|
181
|
+
decrypt_token(token, options).presence
|
178
182
|
end
|
179
183
|
else
|
180
184
|
@current_token ||= session[:current_user]
|
@@ -204,15 +208,27 @@ module BetterRecord
|
|
204
208
|
end
|
205
209
|
|
206
210
|
def decrypt_token(t, **options)
|
207
|
-
|
208
|
-
|
209
|
-
|
211
|
+
ensure_is_real_value(
|
212
|
+
token_send_as_arg ?
|
213
|
+
__send__(token_decryption_method, t, options) :
|
214
|
+
(
|
215
|
+
token_decryption_method.present? ?
|
216
|
+
t.__send__(token_decryption_method) :
|
217
|
+
t
|
218
|
+
).presence
|
219
|
+
)
|
210
220
|
end
|
211
221
|
|
212
222
|
def encrypt_token
|
213
|
-
|
214
|
-
|
215
|
-
|
223
|
+
ensure_is_real_value(
|
224
|
+
token_send_as_arg ?
|
225
|
+
__send__(token_encryption_method, current_token) :
|
226
|
+
(
|
227
|
+
token_encryption_method.present? ?
|
228
|
+
current_token.__send__(token_encryption_method) :
|
229
|
+
current_token
|
230
|
+
).presence
|
231
|
+
)
|
216
232
|
end
|
217
233
|
|
218
234
|
|
@@ -225,6 +241,12 @@ module BetterRecord
|
|
225
241
|
header_hash[:HTTP_CLIENT_IP] ||
|
226
242
|
request.remote_ip
|
227
243
|
end
|
244
|
+
|
245
|
+
def ensure_is_real_value(value)
|
246
|
+
(Boolean.parse(value) && (value != "nil")) ?
|
247
|
+
value :
|
248
|
+
nil
|
249
|
+
end
|
228
250
|
end
|
229
251
|
end
|
230
252
|
end
|