atomic_lti 1.5.1 → 1.5.2
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/lib/atomic_lti/open_id.rb +4 -2
- data/lib/atomic_lti/open_id_middleware.rb +4 -4
- data/lib/atomic_lti/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '09e333d2d54ff5b9eb9932e2ac888e8abbeeb12c5e32c39665ba4da721ed77f3'
|
4
|
+
data.tar.gz: 0a463b3857c3999ae72be4ebd3c3276581327b6d3d35310720e50fb26945ab54
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e08ce497b87420a2b9a677052136e0fd6ebaed73dd1e976eb30683a9bbca0134e8146d3881f926821d8a931892e566e866ef0014e9917bafb28e5efc18845998
|
7
|
+
data.tar.gz: 205225fe9169e6b65348bd3cc35b545a2cfd00531d5cbd331a49c23b83a86a37f3c1a5c776c6c2fff8047f8a356c12758d825727417c172624ef98412adee007
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module AtomicLti
|
2
2
|
class OpenId
|
3
|
-
def self.validate_state(nonce, state)
|
3
|
+
def self.validate_state(nonce, state, destroy_state)
|
4
4
|
if state.blank?
|
5
5
|
return false
|
6
6
|
end
|
@@ -10,7 +10,9 @@ module AtomicLti
|
|
10
10
|
return false
|
11
11
|
end
|
12
12
|
|
13
|
-
|
13
|
+
if destroy_state
|
14
|
+
open_id_state.destroy
|
15
|
+
end
|
14
16
|
|
15
17
|
# Check that the state hasn't expired
|
16
18
|
if open_id_state.created_at < 10.minutes.ago
|
@@ -73,7 +73,7 @@ module AtomicLti
|
|
73
73
|
end
|
74
74
|
end
|
75
75
|
|
76
|
-
def validate_launch(request, validate_target_link_url)
|
76
|
+
def validate_launch(request, validate_target_link_url, destroy_state)
|
77
77
|
# Validate and decode id_token
|
78
78
|
raise AtomicLti::Exceptions::NoLTIToken if request.params["id_token"].blank?
|
79
79
|
|
@@ -92,7 +92,7 @@ module AtomicLti
|
|
92
92
|
end
|
93
93
|
|
94
94
|
# Validate the state and nonce
|
95
|
-
if !AtomicLti::OpenId.validate_state(id_token_decoded["nonce"], state)
|
95
|
+
if !AtomicLti::OpenId.validate_state(id_token_decoded["nonce"], state, destroy_state)
|
96
96
|
raise AtomicLti::Exceptions::OpenIDStateError.new("Invalid OIDC state.")
|
97
97
|
end
|
98
98
|
|
@@ -100,7 +100,7 @@ module AtomicLti
|
|
100
100
|
end
|
101
101
|
|
102
102
|
def handle_redirect(request)
|
103
|
-
id_token_decoded, _state, _state_verified = validate_launch(request, false)
|
103
|
+
id_token_decoded, _state, _state_verified = validate_launch(request, false, false)
|
104
104
|
|
105
105
|
uri = URI(request.url)
|
106
106
|
# Technically the target_link_uri is not required and the certification suite
|
@@ -152,7 +152,7 @@ module AtomicLti
|
|
152
152
|
end
|
153
153
|
|
154
154
|
def handle_lti_launch(env, request)
|
155
|
-
id_token_decoded, state, state_verified = validate_launch(request, true)
|
155
|
+
id_token_decoded, state, state_verified = validate_launch(request, true, true)
|
156
156
|
|
157
157
|
id_token = request.params["id_token"]
|
158
158
|
update_install(id_token: id_token_decoded)
|
data/lib/atomic_lti/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: atomic_lti
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.
|
4
|
+
version: 1.5.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Petro
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2023-08-
|
13
|
+
date: 2023-08-18 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: pg
|