Skip to content

Commit 01b1bab

Browse files
committed
Catch SSL error when submitting LTI scores
Fixes CODEOCEAN-16J
1 parent 8d854ea commit 01b1bab

File tree

2 files changed

+2
-2
lines changed

2 files changed

+2
-2
lines changed

app/controllers/concerns/lti.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ def send_score_for(submission, user, score)
180180
begin
181181
response = provider.post_replace_result!(score)
182182
{code: response.response_code, message: response.post_response.body, status: response.code_major, user:}
183-
rescue IMS::LTI::XMLParseError, Net::OpenTimeout, Net::ReadTimeout, Errno::ECONNREFUSED, Errno::ECONNRESET, SocketError, EOFError
183+
rescue IMS::LTI::XMLParseError, Net::OpenTimeout, Net::ReadTimeout, Errno::ECONNREFUSED, Errno::ECONNRESET, SocketError, EOFError, OpenSSL::SSL::SSLError
184184
# A parsing error might happen if the LTI provider is down and doesn't return a valid XML response
185185
{status: 'error', user:}
186186
end

app/controllers/sessions_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ def redirect_to_survey
8686
lti_parameters = params.slice(*Lti::SESSION_PARAMETERS).permit!.to_h
8787
provider = build_tool_provider(consumer: current_user.consumer, parameters: lti_parameters)
8888
provider.post_replace_result!(1.0)
89-
rescue IMS::LTI::InvalidLTIConfigError, IMS::LTI::XMLParseError, Net::OpenTimeout, Net::ReadTimeout, Errno::ECONNREFUSED, Errno::ECONNRESET, SocketError, EOFError
89+
rescue IMS::LTI::InvalidLTIConfigError, IMS::LTI::XMLParseError, Net::OpenTimeout, Net::ReadTimeout, Errno::ECONNREFUSED, Errno::ECONNRESET, SocketError, EOFError, OpenSSL::SSL::SSLError
9090
# We don't do anything here because it is only a bonus point and we want the users to do the survey
9191
end
9292
end

0 commit comments

Comments
 (0)