canvas_lti_third_party_cookies 0.3.1 → 0.3.2
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 88651b27e16e286cfe593e4f91b928d66163a4a323190d147bda3cc111e58cb4
|
4
|
+
data.tar.gz: 2bbceb40ea00ab911683641f0d75d098cb6d42dc9b86cfbec7ea9bb500d14896
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6a55ede6d719896ae4f19cd040a8e214ce40467bc2dcd11eaed07051adbfea8ccff5bf8cd6a445a25067d875e6d7cccd75872357d7474b508209481a0c24b781
|
7
|
+
data.tar.gz: 7f9dd1dee1fc2f99e1b85c17c0ed3b0b14fe6861399f11351110ddbf48242e7a027a7c83534a028e144bf652f3a8fec29a80406d7c7dd795f23c64e5c149146e
|
@@ -18,9 +18,7 @@ module CanvasLtiThirdPartyCookies::SafariLaunch
|
|
18
18
|
# handle_safari_launch(launch_url: action_url, launch_params: { foo: bar }, launch_data: { foo: baz })
|
19
19
|
# }
|
20
20
|
def handle_safari_launch(launch_url:, launch_params: {}, launch_data: {})
|
21
|
-
|
22
|
-
# detect both MacOS and iOS Safari
|
23
|
-
return unless browser.safari? || (browser.webkit? && browser.platform.ios?)
|
21
|
+
return unless is_safari?
|
24
22
|
|
25
23
|
# Safari launch #4: Storage Access has been granted,
|
26
24
|
# so launch the app normally. Note that this is not an actual LTI launch, but
|
@@ -59,11 +57,17 @@ module CanvasLtiThirdPartyCookies::SafariLaunch
|
|
59
57
|
# replay attacks, but for this specific situation (the request is an internal redirect)
|
60
58
|
# it's a sufficient hack.
|
61
59
|
def should_ignore_nonce?
|
62
|
-
params[:storage_access_status] == "granted" && URI.parse(request.referer).host == request.host
|
60
|
+
is_safari? && params[:storage_access_status] == "granted" && URI.parse(request.referer).host == request.host
|
63
61
|
end
|
64
62
|
|
65
63
|
private
|
66
64
|
|
65
|
+
def is_safari?
|
66
|
+
browser = Browser.new(request.headers["User-Agent"])
|
67
|
+
# detect both MacOS and iOS Safari
|
68
|
+
browser.safari? || (browser.webkit? && browser.platform.ios?)
|
69
|
+
end
|
70
|
+
|
67
71
|
def relaunch_url(launch_url, launch_params)
|
68
72
|
return launch_url if launch_params.empty?
|
69
73
|
"#{launch_url}?#{launch_params.to_query}"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: canvas_lti_third_party_cookies
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Xander Moffatt
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-03-
|
11
|
+
date: 2021-03-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|